diff --git a/Control/Monad/Error/Class.hs b/Control/Monad/Error/Class.hs
--- a/Control/Monad/Error/Class.hs
+++ b/Control/Monad/Error/Class.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE CPP, UndecidableInstances #-}
 
 {- |
 Module      :  Control.Monad.Error.Class
@@ -56,6 +56,13 @@
 import Control.Monad
 import Control.Monad.Instances ()
 import Data.Monoid
+
+#if MIN_VERSION_base(4,6,0)
+import System.IO.Error (catchIOError)
+
+catch :: IO a -> (IOError -> IO a) -> IO a
+catch = catchIOError
+#endif
 
 {- |
 The strategy of combining computations that can throw exceptions
diff --git a/mtl.cabal b/mtl.cabal
--- a/mtl.cabal
+++ b/mtl.cabal
@@ -1,5 +1,5 @@
 name:         mtl
-version:      2.0.1.0
+version:      2.0.1.1
 cabal-version: >= 1.6
 license:      BSD3
 license-file: LICENSE
