diff --git a/control-monad-exception-monadsfd.cabal b/control-monad-exception-monadsfd.cabal
--- a/control-monad-exception-monadsfd.cabal
+++ b/control-monad-exception-monadsfd.cabal
@@ -1,6 +1,6 @@
 name: control-monad-exception-monadsfd
-version: 0.9.1
-Cabal-Version:  >= 1.6
+version: 0.10.3
+Cabal-Version:  >= 1.10
 build-type: Simple
 license: PublicDomain
 author: Pepe Iborra
@@ -14,14 +14,15 @@
 bug-reports: http://github.com/pepeiborra/control-monad-exception/issues
 
 Library
+  default-language: Haskell98
   buildable: True 
   build-depends: base > 4 && < 5
-               , control-monad-exception >= 0.9.1
-               , transformers >= 0.1.0
+               , control-monad-exception >= 0.10.3
+               , transformers >= 0.2
                , monads-fd    >= 0.1
 
-  extensions:  ScopedTypeVariables, 
-               PackageImports,
+  default-extensions:  
+               ScopedTypeVariables, 
                MultiParamTypeClasses,
                FlexibleContexts,
                FlexibleInstances,
diff --git a/extensions/Control/Monad/Exception/MonadsFD.hs b/extensions/Control/Monad/Exception/MonadsFD.hs
--- a/extensions/Control/Monad/Exception/MonadsFD.hs
+++ b/extensions/Control/Monad/Exception/MonadsFD.hs
@@ -2,21 +2,17 @@
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE FlexibleContexts, FlexibleInstances #-}
 {-# LANGUAGE UndecidableInstances #-}
-{-# LANGUAGE PackageImports #-}
 
 -- | 'EMT' liftings for the classes in the monads-fd package
 module Control.Monad.Exception.MonadsFD (module Control.Monad.Exception, Control.Monad.Exception.catch
                                         ) where
 
-import qualified Control.Exception as CE
-
 import qualified Control.Monad.Exception
 import Control.Monad.Exception hiding (catch, Error)
 import Control.Monad.Exception.Catch
-import "monads-fd" Control.Monad.Cont.Class
-import "monads-fd" Control.Monad.RWS.Class
+import Control.Monad.Cont.Class
+import Control.Monad.RWS.Class
 
-import Control.Monad.IO.Class
 import Control.Monad.Trans.Class
 import Control.Monad.Trans.Error
 import Control.Monad.Trans.List
@@ -27,12 +23,6 @@
 
 import Data.Monoid
 import Prelude hiding (catch)
-
-instance (Throws SomeException l, MonadIO m) => MonadIO (EMT l m) where
-  liftIO m = EMT (liftIO m') where
-      m' = liftM Right m
-            `CE.catch`
-           \(e::SomeException) -> return (Left ([], CheckedException e))
 
 instance MonadCont m => MonadCont (EMT l m) where
   callCC f = EMT $ callCC $ \c -> unEMT (f (\a -> EMT $ c (Right a)))
