diff --git a/distributed-process-simplelocalnet.cabal b/distributed-process-simplelocalnet.cabal
--- a/distributed-process-simplelocalnet.cabal
+++ b/distributed-process-simplelocalnet.cabal
@@ -1,5 +1,5 @@
 Name:          distributed-process-simplelocalnet
-Version:       0.2.0.5
+Version:       0.2.0.6
 Cabal-Version: >=1.8
 Build-Type:    Simple
 License:       BSD3 
@@ -26,19 +26,20 @@
 Library
   Build-Depends:     base >= 4.4 && < 5,
                      bytestring >= 0.9 && < 0.11,
-                     network >= 2.3 && < 2.4,
+                     network >= 2.3 && < 2.5,
                      network-multicast >= 0.0 && < 0.1,
                      data-accessor >= 0.2 && < 0.3,
                      binary >= 0.5 && < 0.6,
                      containers >= 0.4 && < 0.6,
                      transformers >= 0.2 && < 0.4,
-                     network-transport >= 0.2 && < 0.3,
-                     network-transport-tcp >= 0.2 && < 0.3,
-                     distributed-process >= 0.2 && < 0.4
+                     network-transport >= 0.3 && < 0.4,
+                     network-transport-tcp >= 0.3 && < 0.4,
+                     distributed-process >= 0.2 && < 0.5
   Exposed-modules:   Control.Distributed.Process.Backend.SimpleLocalnet,
                      Control.Distributed.Process.Backend.SimpleLocalnet.Internal.Multicast
   Extensions:        RankNTypes,
-                     DeriveDataTypeable
+                     DeriveDataTypeable,
+                     CPP
   ghc-options:       -Wall
   HS-Source-Dirs:    src
 
@@ -48,15 +49,15 @@
   Main-Is:           TestSimpleLocalnet.hs
   Build-Depends:     base >= 4.4 && < 5,
                      bytestring >= 0.9 && < 0.11,
-                     network >= 2.3 && < 2.4,
+                     network >= 2.3 && < 2.5,
                      network-multicast >= 0.0 && < 0.1,
                      data-accessor >= 0.2 && < 0.3,
                      binary >= 0.5 && < 0.6,
                      containers >= 0.4 && < 0.6,
                      transformers >= 0.2 && < 0.4,
-                     network-transport >= 0.2 && < 0.3,
-                     network-transport-tcp >= 0.2 && < 0.3,
-                     distributed-process >= 0.2 && < 0.4
+                     network-transport >= 0.3 && < 0.4,
+                     network-transport-tcp >= 0.3 && < 0.4,
+                     distributed-process >= 0.2 && < 0.5
   Extensions:        RankNTypes,
                      DeriveDataTypeable
   ghc-options:       -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind 
diff --git a/src/Control/Distributed/Process/Backend/SimpleLocalnet/Internal/Multicast.hs b/src/Control/Distributed/Process/Backend/SimpleLocalnet/Internal/Multicast.hs
--- a/src/Control/Distributed/Process/Backend/SimpleLocalnet/Internal/Multicast.hs
+++ b/src/Control/Distributed/Process/Backend/SimpleLocalnet/Internal/Multicast.hs
@@ -61,10 +61,12 @@
 
 type UDPState = Map SockAddr BSL.ByteString 
 
--- TODO: This is inefficient and an orphan instance. 
--- Requested official instance (https://github.com/haskell/network/issues/38) 
+#if MIN_VERSION_network(2,4,0)
+-- network-2.4.0 provides the Ord instance for us
+#else
 instance Ord SockAddr where
   compare = compare `on` show
+#endif
 
 bufferFor :: SockAddr -> Accessor UDPState BSL.ByteString
 bufferFor = DAC.mapDefault BSL.empty
