diff --git a/distributed-process-p2p.cabal b/distributed-process-p2p.cabal
--- a/distributed-process-p2p.cabal
+++ b/distributed-process-p2p.cabal
@@ -1,5 +1,5 @@
 name:                distributed-process-p2p
-version:             0.1.1.0
+version:             0.1.1.1
 synopsis:            Peer-to-peer node discovery for Cloud Haskell
 description:         Bootstraps a peer-to-peer connection network from a set of known hosts.
 homepage:            https://bitbucket.org/dpwiz/distributed-process-p2p/
@@ -23,9 +23,9 @@
   build-depends:
     base ==4.*,
     mtl ==2.1.*,
-    bytestring ==0.9.*,
+    bytestring >=0.9 && < 0.11,
     containers >=0.4 && < 0.6,
-    binary ==0.5.*,
+    binary >=0.5 && < 0.7,
 
     distributed-process >=0.4.1 && <0.5,
     network-transport ==0.3.*,
diff --git a/src/Control/Distributed/Backend/P2P.hs b/src/Control/Distributed/Backend/P2P.hs
--- a/src/Control/Distributed/Backend/P2P.hs
+++ b/src/Control/Distributed/Backend/P2P.hs
@@ -122,7 +122,7 @@
     peers <- receiveChan rp
 
     known <- liftIO $ readMVar (p2pPeers state)
-    mapM_ (doRegister state) (S.toList $ S.difference known peers)
+    mapM_ (doRegister state) (S.toList $ S.difference peers known)
 
 onPeerRequest :: PeerState -> (ProcessId, SendPort Peers) -> Process ()
 onPeerRequest PeerState{..} (peer, replyTo) = do
