diff --git a/Control/Monad/Error.hs b/Control/Monad/Error.hs
--- a/Control/Monad/Error.hs
+++ b/Control/Monad/Error.hs
@@ -81,14 +81,16 @@
 
 #if !(MIN_VERSION_base(4,2,1))
 
--- These instances are in base-4.3
+-- These instances are in base-4.3, minus the fail definition and
+-- the Error constraint
 
-instance Monad (Either e) where
+instance (Error e) => Monad (Either e) where
     return        = Right
     Left  l >>= _ = Left l
     Right r >>= k = k r
+    fail msg      = Left (strMsg msg)
 
-instance MonadFix (Either e) where
+instance (Error e) => MonadFix (Either e) where
     mfix f = let
         a = f $ case a of
             Right r -> r
diff --git a/mtl.cabal b/mtl.cabal
--- a/mtl.cabal
+++ b/mtl.cabal
@@ -1,5 +1,5 @@
 name:         mtl
-version:      1.1.1.0
+version:      1.1.1.1
 license:      BSD3
 license-file: LICENSE
 author:       Andy Gill
