diff --git a/equivalence.cabal b/equivalence.cabal
--- a/equivalence.cabal
+++ b/equivalence.cabal
@@ -1,5 +1,5 @@
 Name:            equivalence
-Version:         0.2.5
+Version:         0.2.6
 License:         BSD3
 License-File:    LICENSE
 Author:          Patrick Bahr
diff --git a/src/Data/Equivalence/Monad.hs b/src/Data/Equivalence/Monad.hs
--- a/src/Data/Equivalence/Monad.hs
+++ b/src/Data/Equivalence/Monad.hs
@@ -6,6 +6,11 @@
   UndecidableInstances,
   FunctionalDependencies #-}
 
+-- Suppress warnings about ''Control.Monad.Error'' being deprecated.
+
+{-# OPTIONS_GHC -fno-warn-deprecations #-}
+
+
 --------------------------------------------------------------------------------
 -- |
 -- Module      : Data.Equivalence.Monad
@@ -42,6 +47,7 @@
  
 import Control.Monad.Writer
 import Control.Monad.Reader
+import Control.Monad.Except
 import Control.Monad.Error
 import Control.Monad.State
 import Control.Monad.Trans
@@ -291,6 +297,20 @@
     x === y = lift $ (===) x y
     desc x = lift $ desc x
     remove x = lift $ remove x
+
+instance (MonadEquiv c v d m) => MonadEquiv c v d (ExceptT e m) where
+    equivalent x y = lift $ equivalent x y
+    classDesc = lift . classDesc
+    equateAll x = lift $ equateAll x
+    equate x y = lift $ equate x y
+    removeClass x = lift $ removeClass x
+    getClass x = lift $ getClass x
+    combineAll x = lift $ combineAll x
+    combine x y = lift $ combine x y
+    x === y = lift $ (===) x y
+    desc x = lift $ desc x
+    remove x = lift $ remove x
+
 
 instance (MonadEquiv c v d m) => MonadEquiv c v d (StateT s m) where
     equivalent x y = lift $ equivalent x y
