diff --git a/runTestsAndCoverage.sh b/runTestsAndCoverage.sh
--- a/runTestsAndCoverage.sh
+++ b/runTestsAndCoverage.sh
@@ -2,30 +2,31 @@
 
 set -e
 
-# All directory variables relative to project root
-DIR=dist-newstyle/hpc
-
-SUITE=./dist-newstyle/build/snap-1.0.0.0/build/testsuite/testsuite
-
-if [ -z "$DEBUG" ]; then
-    export DEBUG=snap-testsuite
-fi
-
-rm -f testsuite.tix
-rm -rf "$DIR"
-mkdir -p "$DIR"
-
-if [ ! -f $SUITE ]; then
-    cat <<EOF
-Testsuite executable not found, please run:
-    cabal install --enable-tests --only-dependencies
-    cabal configure --enable-tests
-    cabal build
-EOF
-    exit;
-fi
-
-$SUITE $*
+# # All directory variables relative to project root
+# DIR=dist-newstyle/hpc
+# 
+# SUITE=./dist-newstyle/build/x86_64-osx/ghc-8.2.2/snap-1.1.1.0/t/testsuite/build/testsuite/testsuite
+# 
+# if [ -z "$DEBUG" ]; then
+#     export DEBUG=snap-testsuite
+# fi
+# 
+# rm -f testsuite.tix
+# rm -rf "$DIR"
+# mkdir -p "$DIR"
+# 
+# if [ ! -f $SUITE ]; then
+#     cat <<EOF
+# Testsuite executable not found, please run:
+#     cabal install --enable-tests --only-dependencies
+#     cabal configure --enable-tests
+#     cabal new-build --enable-tests
+# EOF
+#     exit;
+# fi
+# 
+# # cabal new-run testsuite
+# $SUITE $*
 
 EXCLUDES='Main
 Snap
@@ -68,6 +69,8 @@
 rm -f test/snaplets/heist/templates/bad.tpl
 rm -f test/snaplets/heist/templates/good.tpl
 rm -fr test/non-cabal-appdir/snaplets/foosnaplet # TODO
+
+cp ./dist-newstyle/build/x86_64-osx/ghc-8.2.2/snap-1.1.1.0/hpc/vanilla/tix/testsuite/testsuite.tix .
 
 # TODO - actually send results to /dev/null when hpc kinks are fully removed
 hpc markup $EXCL --destdir=$DIR testsuite # >/dev/null 2>&1
diff --git a/snap.cabal b/snap.cabal
--- a/snap.cabal
+++ b/snap.cabal
@@ -1,5 +1,5 @@
 name:           snap
-version:        1.1.1.0
+version:        1.1.2.0
 synopsis:       Top-level package for the Snap Web Framework
 description:
     This is the top-level package for the official Snap Framework libraries.
@@ -41,7 +41,8 @@
   GHC == 7.10.3,
   GHC == 8.0.1,
   GHC == 8.2.1,
-  GHC == 8.4.1
+  GHC == 8.4.1,
+  GHC == 8.6.1
 
 extra-source-files:
   .ghci
@@ -110,33 +111,34 @@
     Snap.Snaplet.Session.SecureCookie
 
   build-depends:
-    aeson                     >= 0.6      && < 1.4,
+    aeson                     >= 0.6      && < 1.5,
     attoparsec                >= 0.10     && < 0.14,
-    base                      >= 4        && < 4.12,
+    base                      >= 4        && < 4.13,
     bytestring                >= 0.9.1    && < 0.11,
     cereal                    >= 0.3      && < 0.6,
     clientsession             >= 0.8      && < 0.10,
     configurator              >= 0.1      && < 0.4,
-    containers                >= 0.2      && < 0.6,
+    containers                >= 0.2      && < 0.7,
     directory                 >= 1.1      && < 1.4,
     directory-tree            >= 0.10     && < 0.13,
     dlist                     >= 0.5      && < 0.9,
+    fail                      >= 4.9      && < 4.10,
     filepath                  >= 1.3      && < 1.5,
     -- hashable is broken from 1.2.0.0 through 1.2.0.5
     -- snap does work with hashable 1.1.*, but some have complained that
     -- the version disjunction causes problems with dependency resolution.
     hashable                  >= 1.2.0.6  && < 1.3,
     heist                     >= 1.1      && < 1.2,
-    lens                      >= 3.7.6    && < 4.17,
+    lens                      >= 3.7.6    && < 4.18,
     lifted-base               >= 0.2      && < 0.3,
     map-syntax                >= 0.2      && < 0.4,
     monad-control             >= 0.3      && < 1.1,
     mtl                       >= 2.0      && < 2.3,
-    mwc-random                >= 0.8      && < 0.14,
+    mwc-random                >= 0.8      && < 0.15,
     pwstore-fast              >= 2.2      && < 2.5,
     snap-core                 >= 1.0      && < 1.1,
     snap-server               >= 1.0      && < 1.2,
-    stm                       >= 2.2      && < 2.5,
+    stm                       >= 2.2      && < 2.6,
     text                      >= 0.11     && < 1.3,
     time                      >= 1.1      && < 1.10,
     transformers              >= 0.2      && < 0.6,
@@ -242,6 +244,7 @@
     directory,
     directory-tree,
     dlist,
+    fail,
     filepath,
     hashable,
     heist,
@@ -254,7 +257,7 @@
     mtl,
     mwc-random,
     pwstore-fast,
-    QuickCheck                 >= 2.4.2    && < 2.12,
+    QuickCheck                 >= 2.4.2    && < 2.13,
     smallcheck                 >= 1.1.1    && < 1.2,
     snap-core,
     snap-server,
diff --git a/src/Snap/Snaplet/Internal/Initializer.hs b/src/Snap/Snaplet/Internal/Initializer.hs
--- a/src/Snap/Snaplet/Internal/Initializer.hs
+++ b/src/Snap/Snaplet/Internal/Initializer.hs
@@ -111,7 +111,7 @@
 ------------------------------------------------------------------------------
 -- | Return the current environment string.  This will be the
 -- environment given to 'runSnaplet' or from the command line when
--- using 'serveSnaplet'.  Usefully for changing behavior during
+-- using 'serveSnaplet'.  Useful for changing behavior during
 -- development and testing.
 getEnvironment :: Initializer b v String
 getEnvironment = iGets _environment
diff --git a/src/Snap/Snaplet/Internal/Lensed.hs b/src/Snap/Snaplet/Internal/Lensed.hs
--- a/src/Snap/Snaplet/Internal/Lensed.hs
+++ b/src/Snap/Snaplet/Internal/Lensed.hs
@@ -14,6 +14,7 @@
 import           Control.Lens                (ALens', cloneLens, storing, (^#))
 import           Control.Monad               (MonadPlus (..), liftM)
 import           Control.Monad.Base          (MonadBase (..))
+import qualified Control.Monad.Fail          as Fail
 import           Control.Monad.Reader        (MonadReader (..))
 import           Control.Monad.State.Class   (MonadState (..))
 import           Control.Monad.Trans         (MonadIO (..), MonadTrans (..))
@@ -44,6 +45,11 @@
     Lensed mf <*> Lensed ma = Lensed $ \l v s -> do
         (f, v', s') <- mf l v s
         (\(a,v'',s'') -> (f a, v'', s'')) <$> ma l v' s'
+
+
+------------------------------------------------------------------------------
+instance Fail.MonadFail m => Fail.MonadFail (Lensed b v m) where
+    fail s = Lensed $ \_ _ _ -> Fail.fail s
 
 
 ------------------------------------------------------------------------------
diff --git a/src/Snap/Snaplet/Internal/Types.hs b/src/Snap/Snaplet/Internal/Types.hs
--- a/src/Snap/Snaplet/Internal/Types.hs
+++ b/src/Snap/Snaplet/Internal/Types.hs
@@ -20,6 +20,7 @@
 import           Control.Lens                 (ALens', makeLenses, set)
 import           Control.Monad                (liftM)
 import           Control.Monad.Base           (MonadBase (..))
+import           Control.Monad.Fail           (MonadFail)
 import           Control.Monad.Reader         (MonadIO (..), MonadPlus, MonadReader (ask, local))
 import           Control.Monad.State.Class    (MonadState (get, put), gets)
 import           Control.Monad.Trans.Control  (MonadBaseControl (..))
@@ -277,6 +278,7 @@
   deriving ( Monad
            , Functor
            , Applicative
+           , MonadFail
            , MonadIO
            , MonadPlus
            , Alternative
diff --git a/test/suite/Snap/Snaplet/Test/Tests.hs b/test/suite/Snap/Snaplet/Test/Tests.hs
--- a/test/suite/Snap/Snaplet/Test/Tests.hs
+++ b/test/suite/Snap/Snaplet/Test/Tests.hs
@@ -12,14 +12,10 @@
 import           Test.Framework.Providers.HUnit (testCase)
 import           Test.HUnit                     hiding (Test, path)
 ------------------------------------------------------------------------------
-import           Snap.Core                      (readRequestBody,
-                                                 writeLBS, writeText)
-import qualified Snap.Test                      as ST
-import           Snap.Snaplet.Test              (closeSnaplet,
-                                                 getSnaplet,
-                                                 evalHandler, evalHandler',
-                                                 runHandler, runHandler')
+import           Snap.Core                      (readRequestBody, writeLBS, writeText)
+import           Snap.Snaplet.Test              (closeSnaplet, evalHandler, evalHandler', getSnaplet, runHandler, runHandler')
 import           Snap.Snaplet.Test.Common.App   (appInit, failingAppInit)
+import qualified Snap.Test                      as ST
 
 ------------------------------------------------------------------------------
 tests :: Test
@@ -121,7 +117,7 @@
     assertReadRqBody =
       do let hdl = readRequestBody 5000 >>= writeLBS
          res <- race
-                (threadDelay 1000000)
+                (threadDelay 100000000)
                 (runHandler Nothing (ST.get "" Map.empty) hdl appInit)
          either (assertFailure . ("readRequestBody timeout" ++) . show)
            (either (assertFailure . show) ST.assertSuccess) res
