diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.2.1
+
+* Support `exceptions-0.10`.
+
 ## 1.2.0
 
 * Drop `monad-control` and `mmorph` dependencies
diff --git a/Control/Monad/Trans/Resource/Internal.hs b/Control/Monad/Trans/Resource/Internal.hs
--- a/Control/Monad/Trans/Resource/Internal.hs
+++ b/Control/Monad/Trans/Resource/Internal.hs
@@ -136,6 +136,18 @@
   uninterruptibleMask a =
     ResourceT $ \e -> uninterruptibleMask $ \u -> unResourceT (a $ q u) e
       where q u (ResourceT b) = ResourceT (u . b)
+#if MIN_VERSION_exceptions(0, 10, 0)
+  generalBracket acquire release use =
+    ResourceT $ \r ->
+        generalBracket
+            ( unResourceT acquire r )
+            ( \resource exitCase ->
+                  unResourceT ( release resource exitCase ) r
+            )
+            ( \resource -> unResourceT ( use resource ) r )
+#elif MIN_VERSION_exceptions(0, 9, 0)
+#error exceptions 0.9.0 is not supported
+#endif
 instance MonadIO m => MonadResource (ResourceT m) where
     liftResourceT = transResourceT liftIO
 instance PrimMonad m => PrimMonad (ResourceT m) where
diff --git a/Data/Acquire/Internal.hs b/Data/Acquire/Internal.hs
--- a/Data/Acquire/Internal.hs
+++ b/Data/Acquire/Internal.hs
@@ -32,7 +32,7 @@
 
 -- | A method for acquiring a scarce resource, providing the means of freeing
 -- it when no longer needed. This data type provides
--- @Functor@/@Applicative@/@Monad@ instances for composing different resources
+-- @Functor@\/@Applicative@\/@Monad@ instances for composing different resources
 -- together. You can allocate these resources using either the @bracket@
 -- pattern (via @with@) or using @ResourceT@ (via @allocateAcquire@).
 --
diff --git a/resourcet.cabal b/resourcet.cabal
--- a/resourcet.cabal
+++ b/resourcet.cabal
@@ -1,5 +1,5 @@
 Name:                resourcet
-Version:             1.2.0
+Version:             1.2.1
 Synopsis:            Deterministic allocation and freeing of scarce resources.
 description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/resourcet>.
 License:             BSD3
@@ -22,7 +22,7 @@
                      , containers
                      , transformers             >= 0.4
                      , mtl                      >= 2.0          && < 2.3
-                     , exceptions               >= 0.8
+                     , exceptions               (== 0.8.* || == 0.10.*)
                      , unliftio-core
                      , primitive
   ghc-options:     -Wall
@@ -34,6 +34,7 @@
     cpp-options:   -DTEST
     build-depends:   resourcet
                    , base
+                   , exceptions
                    , hspec >= 1.3
                    , transformers
     ghc-options:     -Wall
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -6,6 +6,7 @@
                                                getMaskingState, throwIO, try, fromException)
 import           Control.Exception            (SomeException, handle)
 import           Control.Monad                (unless, void)
+import qualified Control.Monad.Catch
 import           Control.Monad.IO.Class       (liftIO)
 import           Control.Monad.Trans.Resource
 import           Data.IORef
@@ -138,6 +139,8 @@
               Left (ResourceCleanupException (Just _) _ [_]) -> error "Got a ResourceT exception"
               Left (ResourceCleanupException _ _ []) -> error "Only got 1"
               Left (ResourceCleanupException _ _ (_:_:_)) -> error "Got more than 2"
+    describe "MonadMask" $
+        it "works" (runResourceT $ Control.Monad.Catch.bracket (return ()) (const (return ())) (const (return ())) :: IO ())
 
 data Dummy = Dummy
     deriving (Show, Typeable)
