diff --git a/exceptions.cabal b/exceptions.cabal
--- a/exceptions.cabal
+++ b/exceptions.cabal
@@ -1,6 +1,6 @@
 name:          exceptions
 category:      Control, Exceptions, Monad
-version:       0.6
+version:       0.6.1
 cabal-version: >= 1.8
 license:       BSD3
 license-file:  LICENSE
@@ -12,7 +12,7 @@
 copyright:     Copyright (C) 2013-2014 Edward A. Kmett
                Copyright (C) 2012 Google Inc.
 build-type:    Simple
-tested-with:   GHC == 7.4.1, GHC == 7.6.1
+tested-with:   GHC == 7.4.1, GHC == 7.6.1, GHC == 7.8.2
 synopsis:      Extensible optionally-pure exceptions
 description:   Extensible optionally-pure exceptions
 
@@ -51,10 +51,9 @@
   ghc-options: -Wall -fwarn-tabs
   type: exitcode-stdio-1.0
   build-depends:
-    base                       >= 4.3      && < 5,
-    transformers               >= 0.2      && < 0.4,
-    mtl                        >= 2.0      && < 2.2,
-
+    base,
+    transformers,
+    mtl,
     test-framework             >= 0.8      && < 0.9,
     test-framework-quickcheck2 >= 0.3      && < 0.4,
     QuickCheck                 >= 2.5      && < 2.8
diff --git a/src/Control/Monad/Catch.hs b/src/Control/Monad/Catch.hs
--- a/src/Control/Monad/Catch.hs
+++ b/src/Control/Monad/Catch.hs
@@ -87,15 +87,16 @@
 import qualified Control.Monad.Trans.State.Strict as StrictS
 import qualified Control.Monad.Trans.Writer.Lazy as LazyW
 import qualified Control.Monad.Trans.Writer.Strict as StrictW
-import Control.Monad.Trans.List (ListT(..))
-import Control.Monad.Trans.Maybe (MaybeT(..))
-import Control.Monad.Trans.Error (ErrorT(..), Error)
+import Control.Monad.Trans.List (ListT(..), runListT)
+import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)
+import Control.Monad.Trans.Error (ErrorT(..), Error, runErrorT)
 #if MIN_VERSION_transformers(0,4,0)
-import Control.Monad.Trans.Except (ExceptT(..))
+import Control.Monad.Trans.Except (ExceptT(..), runExceptT)
 #endif
 import Control.Monad.Trans.Cont (ContT)
 import Control.Monad.Trans.Identity
 import Control.Monad.Reader as Reader
+import Control.Monad.Trans.Reader (runReaderT)
 import Control.Monad.RWS
 import Data.Foldable
 
@@ -226,10 +227,10 @@
 instance MonadCatch m => MonadCatch (ReaderT r m) where
   catch (ReaderT m) c = ReaderT $ \r -> m r `catch` \e -> runReaderT (c e) r
 instance MonadMask m => MonadMask (ReaderT r m) where
-  mask a = ReaderT $ \e -> mask $ \u -> Reader.runReaderT (a $ q u) e
+  mask a = ReaderT $ \e -> mask $ \u -> runReaderT (a $ q u) e
     where q u (ReaderT b) = ReaderT (u . b)
   uninterruptibleMask a =
-    ReaderT $ \e -> uninterruptibleMask $ \u -> Reader.runReaderT (a $ q u) e
+    ReaderT $ \e -> uninterruptibleMask $ \u -> runReaderT (a $ q u) e
       where q u (ReaderT b) = ReaderT (u . b)
 
 instance (MonadThrow m, Monoid w) => MonadThrow (StrictW.WriterT w m) where
