diff --git a/Control/Monad/Exception/Base.hs b/Control/Monad/Exception/Base.hs
--- a/Control/Monad/Exception/Base.hs
+++ b/Control/Monad/Exception/Base.hs
@@ -53,6 +53,7 @@
 import Control.Failure
 import Control.Monad.Fix
 import Data.Typeable
+import Data.Functor.Identity
 import Prelude hiding (catch)
 
 type CallTrace = [String]
@@ -233,11 +234,6 @@
 -- | Run a computation checking even unchecked (@UncaughtExceptions@) exceptions
 runEMParanoid :: EM ParanoidMode a -> a
 runEMParanoid = runIdentity . runEMTParanoid
-
-newtype Identity a = Identity{runIdentity::a} deriving (Eq, Ord, Show)
-instance Monad Identity where
-  return = Identity
-  Identity a >>= f = f a
 
 instance (Throws MonadZeroException l) => MonadPlus (EM l) where
   mzero = throw MonadZeroException
diff --git a/control-monad-exception.cabal b/control-monad-exception.cabal
--- a/control-monad-exception.cabal
+++ b/control-monad-exception.cabal
@@ -1,6 +1,6 @@
 name: control-monad-exception
-version: 0.10.1
-Cabal-Version:  >= 1.6
+version: 0.10.2
+Cabal-Version:  >= 1.10
 build-type: Simple
 license: PublicDomain
 author: Pepe Iborra
@@ -64,8 +64,14 @@
   .
   /Changes/:
   .
-    * 0.9.0 - Moved to transformers (finally leaving the whole mtl-transformers cisma behind)
-    * 0.10.0 - removed the dependency on safe-failure
+  .  
+     * 0.9.0 - Moved to transformers (finally leaving the whole mtl-transformers cisma behind)
+  .  
+     * 0.10.0 - removed the dependency on safe-failure
+  .  
+     * 0.10.1 - compatibility with failure 0.2 (thanks to Bas van Dijk)
+  .  
+     * 0.10.2 - use the identity type from mtl (thanks to Bas), require minimum cabal-install version (thanks to Bernhard Urban)
 
 synopsis: Explicitly typed, checked exceptions with stack traces
 category: Control, Monads, Failure
@@ -78,9 +84,10 @@
   default: False
 
 Library
+  default-language: Haskell98
   buildable: True 
   build-depends: failure >= 0.1 && < 0.3
-               , transformers
+               , transformers >= 0.2
                , monadloc
 
   if flag(extensibleExceptions)
@@ -91,14 +98,22 @@
     build-depends:
       base >= 4 && < 5
 
-  extensions:  MultiParamTypeClasses,
-               ScopedTypeVariables,
-               FlexibleContexts,
-               FlexibleInstances,
-               TypeSynonymInstances,
-               EmptyDataDecls,
-               DeriveDataTypeable,
-               PatternGuards
+  default-extensions:
+     CPP
+     DeriveDataTypeable
+     EmptyDataDecls
+     ExistentialQuantification
+     FlexibleContexts
+     FlexibleInstances
+     FunctionalDependencies
+     MultiParamTypeClasses
+     OverlappingInstances
+     PackageImports
+     PatternGuards
+     ScopedTypeVariables
+     TypeFamilies
+     TypeSynonymInstances
+     UndecidableInstances
 
   exposed-modules:
      Control.Monad.Exception
