diff --git a/Control/Monad/Exception.hs b/Control/Monad/Exception.hs
--- a/Control/Monad/Exception.hs
+++ b/Control/Monad/Exception.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 
 {-|
 A Monad Transformer for explicitly typed checked exceptions, described in detail by:
@@ -74,8 +75,11 @@
 
 -- * Reexports
     Exception(..), SomeException(..), Typeable(..),
+    Failure(..),
+#if !MIN_VERSION_failure(0,2,0)
     Try(..), NothingException(..),
-    Failure(..), WrapFailure(..),
+    WrapFailure(..),
+#endif
     MonadLoc(..), withLocTH
 ) where
 
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
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE FlexibleContexts, FlexibleInstances, TypeSynonymInstances #-}
@@ -111,6 +112,7 @@
 instance (Exception e, Throws e l, Monad m) => Failure e (EMT l m) where
   failure = throw
 
+#if !MIN_VERSION_failure(0,2,0)
 instance (Exception e, Throws e l, Failure e m, Monad m) => WrapFailure e (EMT l m) where
   wrapFailure mkE m
       = EMT $ do
@@ -119,6 +121,7 @@
             Right _ -> return v
             Left (loc, CheckedException (SomeException e))
                     -> return $ Left (loc, CheckedException $ toException $ mkE e)
+#endif
 
 instance MonadTrans (EMT l) where
   lift = EMT . liftM Right
diff --git a/control-monad-exception.cabal b/control-monad-exception.cabal
--- a/control-monad-exception.cabal
+++ b/control-monad-exception.cabal
@@ -1,5 +1,5 @@
 name: control-monad-exception
-version: 0.10.0
+version: 0.10.1
 Cabal-Version:  >= 1.6
 build-type: Simple
 license: PublicDomain
@@ -79,7 +79,7 @@
 
 Library
   buildable: True 
-  build-depends: failure >= 0.1 && < 0.2
+  build-depends: failure >= 0.1 && < 0.3
                , transformers
                , monadloc
 
