diff --git a/distributed-process-client-server.cabal b/distributed-process-client-server.cabal
--- a/distributed-process-client-server.cabal
+++ b/distributed-process-client-server.cabal
@@ -1,5 +1,5 @@
 name:           distributed-process-client-server
-version:        0.2.3
+version:        0.2.5
 cabal-version:  >=1.8
 build-type:     Simple
 license:        BSD3
@@ -8,7 +8,6 @@
 Copyright:      Tim Watson 2012 - 2017
 Author:         Tim Watson
 Maintainer:     Tim Watson <watson.timothy@gmail.com>
-Stability:      experimental
 Homepage:       http://github.com/haskell-distributed/distributed-process-client-server
 Bug-Reports:    http://github.com/haskell-distributed/distributed-process-client-server/issues
 synopsis:       The Cloud Haskell Application Platform
@@ -27,7 +26,7 @@
 library
   build-depends:
                    base >= 4.8.2.0 && < 5,
-                   distributed-process >= 0.6.6 && < 0.7,
+                   distributed-process >= 0.6.6 && < 0.8,
                    distributed-process-extras >= 0.3.1 && < 0.4,
                    distributed-process-async >= 0.2.4 && < 0.3,
                    binary >= 0.6.3.0 && < 0.9,
@@ -38,7 +37,7 @@
                    unordered-containers >= 0.2.3.0 && < 0.3,
                    fingertree < 0.2,
                    stm >= 2.4 && < 2.5,
-                   time > 1.4 && < 1.8,
+                   time > 1.4 && < 1.9.2,
                    transformers,
                    exceptions >= 0.5
   if impl(ghc <= 7.5)
@@ -67,17 +66,17 @@
   x-uses-tf:       true
   build-depends:
                    base >= 4.4 && < 5,
-                   ansi-terminal >= 0.5 && < 0.7,
+                   ansi-terminal >= 0.5 && < 0.9,
                    containers,
-                   distributed-process >= 0.6.6 && < 0.7,
+                   distributed-process >= 0.6.6 && < 0.8,
                    distributed-process-extras >= 0.3.1 && < 0.4,
                    distributed-process-async >= 0.2.4 && < 0.3,
                    distributed-process-client-server,
-                   distributed-process-systest >= 0.1.1 && < 0.2,
-                   network-transport >= 0.4 && < 0.5,
+                   distributed-process-systest >= 0.1.1,
+                   network-transport >= 0.4 && < 0.7,
                    mtl,
                    fingertree < 0.2,
-                   network-transport-tcp >= 0.4 && < 0.6,
+                   network-transport-tcp >= 0.6 && < 0.7,
                    binary >= 0.6.3.0 && < 0.9,
                    deepseq >= 1.3.0.1 && < 1.5,
                    network >= 2.3 && < 2.7,
@@ -105,17 +104,17 @@
   x-uses-tf:       true
   build-depends:
                    base >= 4.4 && < 5,
-                   ansi-terminal >= 0.5 && < 0.7,
+                   ansi-terminal >= 0.5 && < 0.9,
                    containers,
-                   distributed-process >= 0.6.6 && < 0.7,
+                   distributed-process >= 0.6.6 && < 0.8,
                    distributed-process-extras >= 0.3.1 && < 0.4,
-                   distributed-process-async >= 0.2.4 && < 0.3,
+                   distributed-process-async >= 0.2.4 && < 0.4,
                    distributed-process-client-server,
-                   distributed-process-systest >= 0.1.1 && < 0.2,
-                   network-transport >= 0.4 && < 0.5,
+                   distributed-process-systest >= 0.1.1,
+                   network-transport >= 0.4 && < 0.7,
                    mtl,
                    fingertree < 0.2,
-                   network-transport-tcp >= 0.4 && < 0.6,
+                   network-transport-tcp >= 0.6 && < 0.7,
                    binary >= 0.6.3.0 && < 0.9,
                    deepseq >= 1.3.0.1 && < 1.5,
                    network >= 2.3 && < 2.7,
@@ -126,7 +125,7 @@
                    transformers,
                    rematch >= 0.2.0.0,
                    ghc-prim,
-                   exceptions >= 0.5
+                   exceptions >= 0.10
   other-modules:   ManagedProcessCommon,
                    TestUtils
   hs-source-dirs:
diff --git a/src/Control/Distributed/Process/ManagedProcess/Internal/Types.hs b/src/Control/Distributed/Process/ManagedProcess/Internal/Types.hs
--- a/src/Control/Distributed/Process/ManagedProcess/Internal/Types.hs
+++ b/src/Control/Distributed/Process/ManagedProcess/Internal/Types.hs
@@ -108,7 +108,7 @@
   , finally
   , MonadThrow
   , MonadCatch
-  , MonadMask
+  , MonadMask(..)
   )
 import qualified Control.Monad.Catch as Catch
   ( catch
@@ -286,6 +286,11 @@
         ourSTate <- ST.get
         (a', _) <- lift $ restoreP $ runProcess ourSTate p2
         return a'
+
+  generalBracket acquire release inner = GenProcess $ 
+    generalBracket (unManaged acquire)
+                   (\a e -> unManaged $ release a e)
+                   (unManaged . inner)
 
 -- | Run an action in the @GenProcess@ monad.
 runProcess :: State s -> GenProcess s a -> Process (a, State s)
diff --git a/tests/TestUtils.hs b/tests/TestUtils.hs
--- a/tests/TestUtils.hs
+++ b/tests/TestUtils.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE DeriveDataTypeable        #-}
 {-# LANGUAGE TemplateHaskell           #-}
+{-# LANGUAGE TupleSections             #-}
 
 module TestUtils
   ( testMain
@@ -37,13 +38,13 @@
 mkNode :: String -> IO LocalNode
 mkNode port = do
   Right (transport1, _) <- createTransportExposeInternals
-                                    "127.0.0.1" port defaultTCPParameters
+                                    "127.0.0.1" port ("127.0.0.1",) defaultTCPParameters
   newLocalNode transport1 initRemoteTable
 
 -- | Given a @builder@ function, make and run a test suite on a single transport
 testMain :: (NT.Transport -> IO [Test]) -> IO ()
 testMain builder = do
   Right (transport, _) <- createTransportExposeInternals
-                                    "127.0.0.1" "0" defaultTCPParameters
+                                    "127.0.0.1" "0" ("127.0.0.1",) defaultTCPParameters
   testData <- builder transport
   defaultMain testData
