diff --git a/Data/EitherR.hs b/Data/EitherR.hs
--- a/Data/EitherR.hs
+++ b/Data/EitherR.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
 {-| This module provides 'throwEither' and 'catchEither' for 'Either'.  These two
     functions reside here because 'throwEither' and 'catchEither' correspond to 'return'
     and ('>>=') for the flipped 'Either' monad: 'EitherR'.  Additionally, this
@@ -64,6 +66,8 @@
 import Control.Monad.Trans.Except (ExceptT(ExceptT), runExceptT, throwE, catchE)
 import Data.Monoid (Monoid(mempty, mappend))
 
+import qualified Control.Monad.Trans.Except
+
 {-| If \"@Either e r@\" is the error monad, then \"@EitherR r e@\" is the
     corresponding success monad, where:
 
@@ -174,8 +178,13 @@
 handleE = flip catchE
 
 -- | Map a function over the 'Left' value of an 'ExceptT'
+#if MIN_VERSION_base(4,8,0)
+fmapLT :: Functor m => (a -> b) -> ExceptT a m r -> ExceptT b m r
+fmapLT = Control.Monad.Trans.Except.withExceptT
+#else
 fmapLT :: (Monad m) => (a -> b) -> ExceptT a m r -> ExceptT b m r
 fmapLT f = runExceptRT . fmap f . ExceptRT
+#endif
 
 -- | Flip the type variables of an 'ExceptT'
 flipET :: (Monad m) => ExceptT a m b -> ExceptT b m a
diff --git a/errors.cabal b/errors.cabal
--- a/errors.cabal
+++ b/errors.cabal
@@ -1,7 +1,8 @@
 Name: errors
-Version: 2.1.2
+Version: 2.1.3
 Cabal-Version: >=1.8.0.2
 Build-Type: Simple
+Tested-With: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1
 License: BSD3
 License-File: LICENSE
 Copyright: 2012, 2013 Gabriel Gonzalez
@@ -24,14 +25,18 @@
 Library
     Build-Depends:
         base                >= 4     && < 5  ,
-        safe                >= 0.3.3 && < 0.4,
         transformers        >= 0.2   && < 0.6,
         transformers-compat >= 0.4   && < 0.6,
         unexceptionalio     >= 0.3   && < 0.4
+    if impl(ghc <= 7.6.3)
+        Build-Depends:
+            safe            >= 0.3.3 && < 0.3.10
+    else
+        Build-Depends:
+            safe            >= 0.3.3 && < 0.4
     Exposed-Modules:
         Control.Error,
         Control.Error.Safe,
         Control.Error.Script,
         Control.Error.Util,
         Data.EitherR
-    GHC-Options: -O2
