diff --git a/PEOPLE b/PEOPLE
--- a/PEOPLE
+++ b/PEOPLE
@@ -4,3 +4,4 @@
 
 Renzo Carbonara
 Gabriel Gonzalez
+Danny Navarro
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,13 @@
+# Version 0.4
+
+* Bump lower and upper bounds `exceptions` dependency. Replacing some
+  uses of `MonadCatch` with `MonadMask.
+
+* Bump upper bound on `network` dependency.
+
+* Bump upper bound on `transformers` dependency.
+
+
 # Version 0.3.1
 
 * Bumped upper-bounds on `exceptions` dependency.
diff --git a/network-simple.cabal b/network-simple.cabal
--- a/network-simple.cabal
+++ b/network-simple.cabal
@@ -1,5 +1,5 @@
 name:                network-simple
-version:             0.3.1
+version:             0.4
 homepage:            https://github.com/k0001/network-simple
 bug-reports:         https://github.com/k0001/network-simple/issues
 license:             BSD3
@@ -34,8 +34,8 @@
   exposed-modules:   Network.Simple.TCP
   other-modules:     Network.Simple.Internal
   build-depends:     base         (>=4.5 && < 5)
-                   , network      (>=2.3 && <2.5)
+                   , network      (>=2.3 && <2.6)
                    , bytestring   (>=0.9.2.1 && <0.11)
-                   , transformers (>=0.2 && <0.4)
+                   , transformers (>=0.2 && <0.5)
                    -- Packages not in The Haskell Platform
-                   , exceptions   (>=0.3 && <0.6)
+                   , exceptions   (>=0.6 && <0.7)
diff --git a/src/Network/Simple/TCP.hs b/src/Network/Simple/TCP.hs
--- a/src/Network/Simple/TCP.hs
+++ b/src/Network/Simple/TCP.hs
@@ -3,7 +3,7 @@
 -- | This module exports functions that abstract simple TCP 'NS.Socket'
 -- usage patterns.
 --
--- This module uses 'MonadIO' and 'C.MonadCatch' extensively so that you can
+-- This module uses 'MonadIO' and 'C.MonadMask' extensively so that you can
 -- reuse these functions in monads other than 'IO'. However, if you don't care
 -- about any of that, just pretend you are using the 'IO' monad all the time
 -- and everything will work as expected.
@@ -116,7 +116,7 @@
 -- If you prefer to acquire and close the socket yourself, then use
 -- 'connectSock' and 'closeSock'.
 connect
-  :: (MonadIO m, C.MonadCatch m)
+  :: (MonadIO m, C.MonadMask m)
   => NS.HostName      -- ^Server hostname.
   -> NS.ServiceName   -- ^Server service port.
   -> ((NS.Socket, NS.SockAddr) -> m r)
@@ -180,7 +180,7 @@
 -- 2048 as the default size of the listening queue. The 'NS.NoDelay' and
 -- 'NS.ReuseAddr' options are set on the socket.
 listen
-  :: (MonadIO m, C.MonadCatch m)
+  :: (MonadIO m, C.MonadMask m)
   => HostPreference   -- ^Preferred host to bind.
   -> NS.ServiceName   -- ^Service port to bind.
   -> ((NS.Socket, NS.SockAddr) -> m r)
@@ -199,7 +199,7 @@
 --
 -- The connection socket is closed when done or in case of exceptions.
 accept
-  :: (MonadIO m, C.MonadCatch m)
+  :: (MonadIO m, C.MonadMask m)
   => NS.Socket        -- ^Listening and bound socket.
   -> ((NS.Socket, NS.SockAddr) -> m r)
                       -- ^Computation to run once an incoming
