diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.3.1
+
+* Add `MonadFail` instance for `ConduitT`.
+
 ## 1.3.0.3
 
 * Improve fusion framework rewrite rules
diff --git a/conduit.cabal b/conduit.cabal
--- a/conduit.cabal
+++ b/conduit.cabal
@@ -1,5 +1,5 @@
 Name:                conduit
-Version:             1.3.0.3
+Version:             1.3.1
 Synopsis:            Streaming data processing library.
 description:
     `conduit` is a solution to the streaming data problem, allowing for production,
diff --git a/src/Data/Conduit/Internal/Conduit.hs b/src/Data/Conduit/Internal/Conduit.hs
--- a/src/Data/Conduit/Internal/Conduit.hs
+++ b/src/Data/Conduit/Internal/Conduit.hs
@@ -91,6 +91,7 @@
 import Control.Exception (Exception)
 import qualified Control.Exception as E (catch)
 import Control.Monad (liftM, liftM2, ap)
+import Control.Monad.Fail(MonadFail(..))
 import Control.Monad.Error.Class(MonadError(..))
 import Control.Monad.Reader.Class(MonadReader(..))
 import Control.Monad.RWS.Class(MonadRWS())
@@ -149,6 +150,10 @@
     return = pure
     ConduitT f >>= g = ConduitT $ \h -> f $ \a -> unConduitT (g a) h
 
+-- | @since 1.3.1
+instance MonadFail m => MonadFail (ConduitT i o m) where
+    fail = lift . Control.Monad.Fail.fail
+
 instance MonadThrow m => MonadThrow (ConduitT i o m) where
     throwM = lift . throwM
 
@@ -714,7 +719,7 @@
         -> m r
 connect = ($$)
 
--- | Named function synonym for '.|'.
+-- | Named function synonym for '.|'
 --
 -- Equivalent to '.|' and '=$='. However, the latter is
 -- deprecated and will be removed in a future version.
