diff --git a/Crypto/Cipher/RSA.hs b/Crypto/Cipher/RSA.hs
--- a/Crypto/Cipher/RSA.hs
+++ b/Crypto/Cipher/RSA.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE FlexibleInstances, CPP #-}
-
 -- |
 -- Module      : Crypto.Cipher.RSA
 -- License     : BSD-style
@@ -20,6 +18,7 @@
 	, verify
 	) where
 
+import Control.Monad.Error ()
 import Control.Arrow (first)
 import Crypto.Random
 import Data.ByteString (ByteString)
@@ -57,13 +56,6 @@
 
 type HashF = ByteString -> ByteString
 type HashASN1 = ByteString
-
-#if ! (MIN_VERSION_base(4,3,0))
-instance Monad (Either Error) where
-	return          = Right
-	(Left x) >>= _  = Left x
-	(Right x) >>= f = f x
-#endif
 
 padPKCS1 :: CryptoRandomGen g => g -> Int -> ByteString -> Either Error (ByteString, g)
 padPKCS1 rng len m = do
diff --git a/Number/Generate.hs b/Number/Generate.hs
--- a/Number/Generate.hs
+++ b/Number/Generate.hs
@@ -4,6 +4,7 @@
 	, generateOfSize
 	) where
 
+import Control.Monad.Error ()
 import Number.Serialize
 import Crypto.Random
 import qualified Data.ByteString as B
diff --git a/cryptocipher.cabal b/cryptocipher.cabal
--- a/cryptocipher.cabal
+++ b/cryptocipher.cabal
@@ -1,5 +1,5 @@
 Name:                cryptocipher
-Version:             0.2.9
+Version:             0.2.10
 Description:         Symmetrical Block, Stream and PubKey Ciphers
 License:             BSD3
 License-file:        LICENSE
@@ -28,6 +28,7 @@
                    , crypto-api >= 0.5
                    , tagged
                    , cereal
+                   , mtl
   Exposed-modules:   Crypto.Cipher.RC4
                      Crypto.Cipher.AES
                      Crypto.Cipher.Camellia
