diff --git a/managed.cabal b/managed.cabal
--- a/managed.cabal
+++ b/managed.cabal
@@ -1,5 +1,5 @@
 Name: managed
-Version: 1.0.6
+Version: 1.0.7
 Cabal-Version: >=1.8.0.2
 Build-Type: Simple
 License: BSD3
diff --git a/src/Control/Monad/Managed.hs b/src/Control/Monad/Managed.hs
--- a/src/Control/Monad/Managed.hs
+++ b/src/Control/Monad/Managed.hs
@@ -108,6 +108,9 @@
     ) where
 
 import Control.Monad.IO.Class (MonadIO(liftIO))
+#if MIN_VERSION_base(4,9,0)
+import Control.Monad.Fail as MonadFail (MonadFail(..))
+#endif
 import Control.Monad.Trans.Class (lift)
 
 #if MIN_VERSION_base(4,8,0)
@@ -165,6 +168,13 @@
     liftIO m = Managed (\return_ -> do
         a <- m
         return_ a )
+
+#if MIN_VERSION_base(4,9,0)
+instance MonadFail Managed where
+    fail s = Managed (\return_ -> do
+        a <- MonadFail.fail s
+        return_ a )
+#endif
 
 instance Semigroup a => Semigroup (Managed a) where
     (<>) = liftA2 (<>)
