diff --git a/happstack-server.cabal b/happstack-server.cabal
--- a/happstack-server.cabal
+++ b/happstack-server.cabal
@@ -1,5 +1,5 @@
 Name:                happstack-server
-Version:             7.9.4
+Version:             7.9.5
 Synopsis:            Web related tools and services.
 Description:         Happstack Server provides an HTTP server and a rich set of functions for routing requests, handling query parameters, generating responses, working with cookies, serving files, and more. For in-depth documentation see the Happstack Crash Course <http://happstack.com/docs/crashcourse/index.html>
 License:             BSD3
@@ -81,7 +81,7 @@
                        network-uri >= 2.6 && < 2.7
   else
      build-depends:    network               < 2.6
-  Build-Depends:       base                   >= 4    && < 5,
+  Build-Depends:       base                   >= 4.8  && < 5,
                        base64-bytestring      >= 1.0  && < 1.3,
                        blaze-html             >= 0.5  && < 0.10,
                        bytestring,
@@ -91,7 +91,7 @@
                        filepath,
                        hslogger               >= 1.0.2,
                        html,
-                       monad-control          >= 1.0  && < 1.1,
+                       monad-control          >= 1.0.3 && < 1.1,
                        mtl                    >= 2.2  && < 2.4,
                        parsec                            < 4,
                        process,
@@ -138,7 +138,7 @@
   GHC-Options: -threaded
   hs-source-dirs: tests
   Build-depends: HUnit,
-                 base >= 4    && < 5,
+                 base >= 4.8  && < 5,
                  bytestring,
                  containers,
                  happstack-server,
diff --git a/src/Happstack/Server/Internal/Monads.hs b/src/Happstack/Server/Internal/Monads.hs
--- a/src/Happstack/Server/Internal/Monads.hs
+++ b/src/Happstack/Server/Internal/Monads.hs
@@ -61,7 +61,7 @@
 import Happstack.Server.Internal.Types           (EscapeHTTP(..), canHaveBody)
 import Happstack.Server.Internal.TimeoutIO       (TimeoutIO)
 import Happstack.Server.Types
-import Prelude                                   (Bool(..), Either(..), Eq(..), Functor(..), IO, Monad(..), Char, Maybe(..), String, Show(..), ($), (.), (>), (++), (&&), (||), (=<<), const, concatMap, flip, id, otherwise, zip)
+import Prelude                                   (Bool(..), Either(..), Eq(..), Functor(..), IO, Monad(..), return, (>>), Char, Maybe(..), String, Show(..), ($), (.), (>), (++), (&&), (||), (=<<), const, concatMap, flip, id, otherwise, zip)
 
 -- | An alias for 'WebT' when using 'IO'.
 type Web a = WebT IO a
@@ -194,7 +194,7 @@
     mappend = (SG.<>)
 
 instance (Monad m, Functor m) => Applicative (ServerPartT m) where
-    pure = return
+    pure a = ServerPartT $ pure a
     (<*>) = ap
 
 instance (Functor m, MonadPlus m) => Alternative (ServerPartT m) where
@@ -477,8 +477,6 @@
 instance Monad m => Monad (WebT m) where
     m >>= f = WebT $ unWebT m >>= unWebT . f
     {-# INLINE (>>=) #-}
-    return a = WebT $ return a
-    {-# INLINE return #-}
 
 #if MIN_VERSION_base(4,9,0)
 instance MonadFail m => MonadFail (WebT m) where
@@ -567,7 +565,7 @@
     = withRequest $ \rq -> fn (runServerPartT hs rq)
 
 instance (Monad m, Functor m) => Applicative (WebT m) where
-    pure = return
+    pure a = WebT $ pure a
     (<*>) = ap
 
 instance (Functor m, MonadPlus m) => Alternative (WebT m) where
diff --git a/src/Happstack/Server/RqData.hs b/src/Happstack/Server/RqData.hs
--- a/src/Happstack/Server/RqData.hs
+++ b/src/Happstack/Server/RqData.hs
@@ -114,7 +114,7 @@
 #else
 instance (Monoid e, DeprecatedError.Error e) => Applicative (ReaderError r e) where
 #endif
-    pure = return
+    pure a = ReaderError $ pure a
     (ReaderError (ReaderT f)) <*> (ReaderError (ReaderT a))
         = ReaderError $ ReaderT $ \env -> (f env) `apEither` (a env)
 
