diff --git a/Network/HTTP/Enumerator.hs b/Network/HTTP/Enumerator.hs
--- a/Network/HTTP/Enumerator.hs
+++ b/Network/HTTP/Enumerator.hs
@@ -129,7 +129,11 @@
 import qualified Data.CaseInsensitive as CI
 import Data.Int (Int64)
 import qualified Codec.Zlib.Enum as Z
+#if MIN_VERSION_monad_control(0,3,0)
+import Control.Monad.Trans.Control (MonadBaseControl, liftBaseOp)
+#else
 import Control.Monad.IO.Control (MonadControlIO, liftIOOp)
+#endif
 import Data.Map (Map)
 import qualified Data.Map as Map
 import qualified Data.IORef as I
@@ -881,5 +885,10 @@
     mapM_ TLS.connClose $ Map.elems m
 
 -- | Create a new 'Manager', call the supplied function and then close it.
+#if MIN_VERSION_monad_control(0,3,0)
+withManager :: MonadBaseControl IO m => (Manager -> m a) -> m a
+withManager = liftBaseOp $ bracket newManager closeManager
+#else
 withManager :: MonadControlIO m => (Manager -> m a) -> m a
 withManager = liftIOOp $ bracket newManager closeManager
+#endif
diff --git a/http-enumerator.cabal b/http-enumerator.cabal
--- a/http-enumerator.cabal
+++ b/http-enumerator.cabal
@@ -1,5 +1,5 @@
 name:            http-enumerator
-version:         0.7.1.7
+version:         0.7.1.8
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -35,7 +35,7 @@
                  , cprng-aes             >= 0.2     && < 0.3
                  , tls                   >= 0.8.1   && < 0.9
                  , tls-extra             >= 0.4     && < 0.5
-                 , monad-control         >= 0.2     && < 0.3
+                 , monad-control         >= 0.2     && < 0.4
                  , containers            >= 0.2
                  , certificate           >= 0.7     && < 1.1
                  , case-insensitive      >= 0.2
