diff --git a/Control/Monad/Ghc.hs b/Control/Monad/Ghc.hs
--- a/Control/Monad/Ghc.hs
+++ b/Control/Monad/Ghc.hs
@@ -58,8 +58,10 @@
     liftIO = GHC.liftIO
 #endif
 
-instance MonadCatch Ghc where
+instance MonadThrow Ghc where
     throwM  = liftIO . E.throwIO
+
+instance MonadCatch Ghc where
     catch   = GHC.gcatch
 
 #if __GLASGOW_HASKELL__ >= 700
@@ -111,9 +113,10 @@
     liftIO = MTL.liftIO
 #endif
 
-instance (MonadIO m,MonadCatch m) => MonadCatch (GhcT m) where
+instance MonadCatch m => MonadThrow (GhcT m) where
     throwM = lift . throwM
 
+instance (MonadIO m,MonadCatch m) => MonadCatch (GhcT m) where
     m `catch` f = GhcT ((unGhcT m) `GHC.gcatch` (unGhcT . f))
 
     mask f = wrap $ \s ->
diff --git a/ghc-mtl.cabal b/ghc-mtl.cabal
--- a/ghc-mtl.cabal
+++ b/ghc-mtl.cabal
@@ -1,5 +1,5 @@
 name:               ghc-mtl
-version:            1.1.0.0
+version:            1.2.0.0
 description:        Provides an 'mtl' compatible version of the 'GhcT'
                     monad-transformer defined in the 'GHC-API' since version
                     6.10.1.
@@ -20,7 +20,7 @@
   build-depends:      base >= 4, base <= 5,
                       ghc >= 6.10,
                       mtl,
-                      exceptions == 0.3.*,
+                      exceptions >= 0.4,
                       extensible-exceptions
   exposed-modules:    Control.Monad.Ghc
   extensions:         GeneralizedNewtypeDeriving, CPP
