diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,13 @@
 Changelog for the `reactive-banana` package
 -------------------------------------------
 
+**version 0.8.1.2**
+
+* Depend on the [psqueues][] package instead of the [pqueue][] package for the priority queue.
+
+  [psqueues]: https://hackage.haskell.org/package/psqueues
+  [pqueue]: http://hackage.haskell.org/package/pqueue
+
 **version 0.8.1.1**
 
 * Links to the Haskell wiki now point to the `http://wiki.haskell.org` subdomain.
diff --git a/reactive-banana.cabal b/reactive-banana.cabal
--- a/reactive-banana.cabal
+++ b/reactive-banana.cabal
@@ -1,5 +1,5 @@
 Name:                reactive-banana
-Version:             0.8.1.1
+Version:             0.8.1.2
 Synopsis:            Library for functional reactive programming (FRP).
 Description:
     Reactive-banana is a library for Functional Reactive Programming (FRP).
@@ -67,7 +67,7 @@
 
     build-depends:      unordered-containers >= 0.2.1.0 && < 0.3,
                         hashable >= 1.1 && < 1.3,
-                        pqueue >= 1.0 && < 1.3
+                        psqueues >= 0.2 && < 0.3
 
 --      CPP-options:    -DUseExtensions
         
@@ -106,4 +106,4 @@
                         test-framework >= 0.6 && < 0.9,
                         test-framework-hunit >= 0.2 && < 0.4,
                         reactive-banana, vault, containers, transformers,
-                        unordered-containers, hashable, pqueue
+                        unordered-containers, hashable, psqueues
diff --git a/src/Reactive/Banana/Prim/Dependencies.hs b/src/Reactive/Banana/Prim/Dependencies.hs
--- a/src/Reactive/Banana/Prim/Dependencies.hs
+++ b/src/Reactive/Banana/Prim/Dependencies.hs
@@ -17,7 +17,7 @@
 import qualified Data.HashMap.Strict        as Map
 import qualified Data.HashSet               as Set
 import           Data.Hashable
-import qualified Data.PQueue.Prio.Min       as Q
+import qualified Data.IntPSQ                as Q
 
 import           Reactive.Banana.Prim.Order
 import qualified Reactive.Banana.Prim.Order as Order
@@ -114,21 +114,23 @@
                 Children -> go $ insertList (children deps a) q2
 
 -- | Queue for traversing dependencies.
-data DepsQueue a = DQ !(Q.MinPQueue Level a) !(Set a)
+--
+-- The 'Int' is a key supply for the priority search queue.
+data DepsQueue a = DQ !(Q.IntPSQ Level a) !(Set a) Int
 
 emptyQ :: DepsQueue a
-emptyQ = DQ Q.empty Set.empty
+emptyQ = DQ Q.empty Set.empty 0
 
 insert :: (Eq a, Hashable a) => Level -> a -> DepsQueue a -> DepsQueue a
-insert k a q@(DQ queue seen) = {-# SCC insert #-}
+insert k a q@(DQ queue seen n) = {-# SCC insert #-}
     if a `Set.member` seen
         then q
-        else DQ (Q.insert k a queue) (Set.insert a seen)
+        else DQ (Q.insert (n+1) k a queue) (Set.insert a seen) (n+1)
 
 minView :: DepsQueue a -> Maybe (a, DepsQueue a)
-minView (DQ queue seen) = {-# SCC minView #-} case Q.minView queue of
-    Nothing          -> Nothing
-    Just (a, queue2) -> Just (a, DQ queue2 seen)
+minView (DQ queue seen n) = {-# SCC minView #-} case Q.minView queue of
+    Nothing                -> Nothing
+    Just (_, _, a, queue2) -> Just (a, DQ queue2 seen n)
 
 {-----------------------------------------------------------------------------
     Small tests
