diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,11 @@
+0.3.1
+-----
+* use transformers-compat for backwards compatibility with older versions of transformers
+
 0.3.0.1
-  add CHANGES.txt to .cabal file
+-------
+* add CHANGES.txt to .cabal file
+
 0.3
-  add suport for Control.Monad.Except (thus the new dependency constraint 'mtl >= 2.2.1')
+---
+* add suport for Control.Monad.Except (thus the new dependency constraint 'mtl >= 2.2.1')
diff --git a/equivalence.cabal b/equivalence.cabal
--- a/equivalence.cabal
+++ b/equivalence.cabal
@@ -1,5 +1,5 @@
 Name:            equivalence
-Version:         0.3.0.1
+Version:         0.3.1
 License:         BSD3
 License-File:    LICENSE
 Author:          Patrick Bahr
@@ -33,12 +33,14 @@
   Main-is:		Data_Test.hs
   Other-Modules:	Data.Equivalence.Monad_Test
   hs-source-dirs:	src testsuite/tests
-  Build-Depends:        base >= 4, template-haskell, containers, mtl >= 2.2.1, QuickCheck >= 2,
-                        test-framework, test-framework-quickcheck2, STMonadTrans
+  Build-Depends:        base >= 4, template-haskell, containers, mtl >= 2.0.1, QuickCheck >= 2,
+                        test-framework, test-framework-quickcheck2, STMonadTrans,
+                        transformers >= 0.2, transformers-compat >= 0.3
 
 Library
   Build-Depends:
-    base >= 4 && < 5, containers, mtl >= 2.2.1, STMonadTrans
+    base >= 4 && < 5, containers, mtl >= 2.0.1, STMonadTrans,
+    transformers >= 0.2, transformers-compat >= 0.3
   Exposed-Modules:
     Data.Equivalence.STT,
     Data.Equivalence.Monad
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
@@ -47,12 +47,13 @@
  
 import Control.Monad.Writer
 import Control.Monad.Reader
-import Control.Monad.Except
-import Control.Monad.Error
+import Control.Monad.Error.Class
 import Control.Monad.State
 import Control.Monad.Trans
 import Control.Monad.Identity
 import Control.Monad.ST.Trans
+import Control.Monad.Trans.Error (ErrorT)
+import Control.Monad.Trans.Except (ExceptT)
 import Control.Applicative
 
 
