diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.2.2
+
+* Add `MonadFail` instance for `ResourceT`.
+
 ## 1.2.1
 
 * Support `exceptions-0.10`.
diff --git a/Control/Monad/Trans/Resource.hs b/Control/Monad/Trans/Resource.hs
--- a/Control/Monad/Trans/Resource.hs
+++ b/Control/Monad/Trans/Resource.hs
@@ -86,7 +86,7 @@
 
 -- | Unprotect resource from cleanup actions; this allows you to send
 -- resource into another resourcet process and reregister it there.
--- It returns an release action that should be run in order to clean
+-- It returns a release action that should be run in order to clean
 -- resource or Nothing in case if resource is already freed.
 --
 -- Since 0.4.5
diff --git a/Control/Monad/Trans/Resource/Internal.hs b/Control/Monad/Trans/Resource/Internal.hs
--- a/Control/Monad/Trans/Resource/Internal.hs
+++ b/Control/Monad/Trans/Resource/Internal.hs
@@ -27,6 +27,7 @@
 import Control.Exception (throw,Exception,SomeException)
 import Control.Applicative (Applicative (..), Alternative(..))
 import Control.Monad (MonadPlus(..))
+import Control.Monad.Fail (MonadFail(..))
 import Control.Monad.Fix (MonadFix(..))
 import Control.Monad.IO.Unlift
 import Control.Monad.Trans.Class    (MonadTrans (..))
@@ -236,6 +237,10 @@
         a <- ma r
         let ResourceT f' = f a
         f' r
+
+-- | @since 1.2.2
+instance MonadFail m => MonadFail (ResourceT m) where
+    fail = lift . Control.Monad.Fail.fail
 
 -- | @since 1.1.8
 instance MonadFix m => MonadFix (ResourceT m) where
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -319,4 +319,4 @@
 
 ## Conclusion
 
-ResourceT provides you with a flexible means of allocating resources in an exception safe manner. Its main advantage over the simpler bracket pattern is that it allows interleaving of allocations, allowing for more complicated programs to be created efficiently. If your needs are simple, stick with bracket. If you have need of something more complex, resourcet may be your answer. For understanding how it works under the hook, refer [here](https://www.fpcomplete.com/blog/2017/06/understanding-resourcet).
+ResourceT provides you with a flexible means of allocating resources in an exception safe manner. Its main advantage over the simpler bracket pattern is that it allows interleaving of allocations, allowing for more complicated programs to be created efficiently. If your needs are simple, stick with bracket. If you have need of something more complex, resourcet may be your answer. For understanding how it works under the hood, refer [here](https://www.fpcomplete.com/blog/2017/06/understanding-resourcet).
diff --git a/resourcet.cabal b/resourcet.cabal
--- a/resourcet.cabal
+++ b/resourcet.cabal
@@ -1,5 +1,5 @@
 Name:                resourcet
-Version:             1.2.1
+Version:             1.2.2
 Synopsis:            Deterministic allocation and freeing of scarce resources.
 description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/resourcet>.
 License:             BSD3
