diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+0.15.1
+------
+
+- `FromSourceIO Proxy` (`ListT`) instance `fail`s in `IO`, not in `m`.
+  This works around `MonadFail` proposal, and makes `servant-pipes`
+  behave like `servant-conduit` and `servant-machines`.
+
 0.15
 ----
 
diff --git a/servant-pipes.cabal b/servant-pipes.cabal
--- a/servant-pipes.cabal
+++ b/servant-pipes.cabal
@@ -1,6 +1,6 @@
-name:                servant-pipes
-version:             0.15
 cabal-version:       >=1.10
+name:                servant-pipes
+version:             0.15.1
 
 synopsis:            Servant Stream support for pipes
 category:            Servant, Web, Pipes
@@ -8,19 +8,20 @@
   .
   Provides 'ToSourceIO' and 'FromSourceIO' instances for 'Proxy' and 'SafeT'.
 
-homepage:            http://haskell-servant.readthedocs.org/
+homepage:            http://docs.servant.dev/
 bug-reports:         http://github.com/haskell-servant/servant/issues
 license:             BSD3
 license-file:        LICENSE
 author:              Servant Contributors
 maintainer:          haskell-servant-maintainers@googlegroups.com
-copyright:           2018 Servant Contributors
+copyright:           2018-2019 Servant Contributors
 build-type:          Simple
 tested-with:
   GHC ==8.0.2
    || ==8.2.2
    || ==8.4.4
-   || ==8.6.2
+   || ==8.6.5
+   || ==8.8.1
 
 extra-source-files:
   CHANGELOG.md
@@ -38,7 +39,7 @@
     , pipes-safe    >=2.3.1    && <2.4
     , mtl           >=2.2.2    && <2.3
     , monad-control >=1.0.2.3  && <1.1
-    , servant       >=0.15     && <0.16
+    , servant       >=0.15     && <0.17
   hs-source-dirs:      src
   default-language:    Haskell2010
   ghc-options: -Wall
@@ -59,9 +60,9 @@
     , pipes-safe
     , servant-pipes
     , pipes-bytestring  >=2.1.6    && <2.2
-    , servant-server    >=0.15     && <0.16
-    , servant-client    >=0.15     && <0.16
+    , servant-server    >=0.15     && <0.17
+    , servant-client    >=0.15     && <0.17
     , wai               >=3.2.1.2  && <3.3
-    , warp              >=3.2.25   && <3.3
+    , warp              >=3.2.25   && <3.4
     , http-client
   default-language: Haskell2010
diff --git a/src/Servant/Pipes.hs b/src/Servant/Pipes.hs
--- a/src/Servant/Pipes.hs
+++ b/src/Servant/Pipes.hs
@@ -65,7 +65,7 @@
     fromSourceIO src = M $ liftIO $ S.unSourceT src (return . go) where
         go :: S.StepT IO b -> Proxy X () () b m ()
         go S.Stop        = Pure ()
-        go (S.Error err) = M (fail err)
+        go (S.Error err) = M (liftIO (fail err))
         go (S.Skip s)    = go s -- drives
         go (S.Effect ms) = M (liftIO (fmap go ms))
         go (S.Yield x s) = Respond x (const (go s))
