diff --git a/System/IO/Temp.hs b/System/IO/Temp.hs
--- a/System/IO/Temp.hs
+++ b/System/IO/Temp.hs
@@ -24,7 +24,7 @@
 --
 -- Behaves exactly the same as 'withTempFile', except that the parent temporary directory
 -- will be that returned by 'getTemporaryDirectory'.
-withSystemTempFile :: (MonadIO m, MonadCatch m) =>
+withSystemTempFile :: (MonadIO m, MonadMask m) =>
                       String   -- ^ File name template. See 'openTempFile'.
                    -> (FilePath -> Handle -> m a) -- ^ Callback that can use the file
                    -> m a
@@ -34,7 +34,7 @@
 --
 -- Behaves exactly the same as 'withTempDirectory', except that the parent temporary directory
 -- will be that returned by 'getTemporaryDirectory'.
-withSystemTempDirectory :: (MonadIO m, MonadCatch m) =>
+withSystemTempDirectory :: (MonadIO m, MonadMask m) =>
                            String   -- ^ Directory name template. See 'openTempFile'.
                         -> (FilePath -> m a) -- ^ Callback that can use the directory
                         -> m a
@@ -50,7 +50,7 @@
 --
 -- The @tmpFlie@ will be file in the given directory, e.g.
 -- @src/sdist.342@.
-withTempFile :: (MonadIO m, MonadCatch m) =>
+withTempFile :: (MonadIO m, MonadMask m) =>
                 FilePath -- ^ Temp dir to create the file in
              -> String   -- ^ File name template. See 'openTempFile'.
              -> (FilePath -> Handle -> m a) -- ^ Callback that can use the file
@@ -70,7 +70,7 @@
 --
 -- The @tmpDir@ will be a new subdirectory of the given directory, e.g.
 -- @src/sdist.342@.
-withTempDirectory :: (MonadCatch m, MonadIO m) =>
+withTempDirectory :: (MonadMask m, MonadIO m) =>
                      FilePath -- ^ Temp directory to create the directory in
                   -> String   -- ^ Directory name template. See 'openTempFile'.
                   -> (FilePath -> m a) -- ^ Callback that can use the directory
diff --git a/temporary.cabal b/temporary.cabal
--- a/temporary.cabal
+++ b/temporary.cabal
@@ -1,5 +1,5 @@
 name:                temporary
-version:             1.2.0.2
+version:             1.2.0.3
 cabal-version:       >= 1.6
 synopsis:            Portable temporary file and directory support for Windows and Unix, based on code from Cabal
 description:         The functions for creating temporary files and directories in the base library are quite limited. The unixutils
@@ -23,7 +23,7 @@
     other-modules:   Distribution.Compat.Exception
                      Distribution.Compat.TempFile
     build-depends:   base >= 3 && < 10, filepath >= 1.1, directory >= 1.0,
-                     transformers >= 0.2.0.0, exceptions >= 0.1.1
+                     transformers >= 0.2.0.0, exceptions >= 0.6
     
     if !os(windows)
         build-depends: unix >= 2.3
