diff --git a/iteratee.cabal b/iteratee.cabal
--- a/iteratee.cabal
+++ b/iteratee.cabal
@@ -1,5 +1,5 @@
 name:          iteratee
-version:       0.8.4.0
+version:       0.8.4.1
 synopsis:      Iteratee-based I/O
 description:
   The Iteratee monad provides strict, safe, and functional I/O. In addition
@@ -12,7 +12,7 @@
 license:       BSD3
 license-file:  LICENSE
 homepage:      http://www.tiresiaspress.us/haskell/iteratee
-tested-with:   GHC == 7.0.3, GHC == 6.12.3
+tested-with:   GHC == 7.4.2, GHC == 7.6.0
 stability:     experimental
 
 cabal-version: >= 1.6
@@ -58,11 +58,11 @@
 
   build-depends:
     ListLike                  >= 1.0     && < 4,
-    MonadCatchIO-transformers >  0.2     && < 0.3,
-    bytestring                >= 0.9     && < 0.10,
-    containers                >= 0.2     && < 0.5,
+    MonadCatchIO-transformers >  0.2     && < 0.4,
+    bytestring                >= 0.9     && < 0.11,
+    containers                >= 0.2     && < 0.6,
     parallel                  >= 2       && < 4,
-    transformers              >= 0.2     && < 0.3
+    transformers              >= 0.2     && < 0.4
 
   exposed-modules:
     Data.Nullable
diff --git a/src/Data/Iteratee/Base.hs b/src/Data/Iteratee/Base.hs
--- a/src/Data/Iteratee/Base.hs
+++ b/src/Data/Iteratee/Base.hs
@@ -33,7 +33,7 @@
 )
 where
 
-import Prelude hiding (null, catch)
+import Prelude hiding (null)
 import Data.Iteratee.Base.LooseMap
 import Data.Iteratee.Exception
 import Data.Nullable
@@ -43,7 +43,8 @@
 import Control.Monad.IO.Class
 import Control.Monad.Trans.Class
 import Control.Monad.CatchIO (MonadCatchIO (..), Exception (..),
-  catch, block, toException, fromException)
+  block, toException, fromException)
+import Control.Monad.CatchIO as CIO
 import Control.Applicative hiding (empty)
 import Control.Exception (SomeException)
 import qualified Control.Exception as E
@@ -165,7 +166,7 @@
 
 instance (MonadCatchIO m, Nullable s, NullPoint s) =>
   MonadCatchIO (Iteratee s m) where
-    m `catch` f = Iteratee $ \od oc -> runIter m od oc `catch` (\e -> runIter (f e) od oc)
+    m `catch` f = Iteratee $ \od oc -> runIter m od oc `CIO.catch` (\e -> runIter (f e) od oc)
     block       = ilift block
     unblock     = ilift unblock
 
