diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,6 @@
+0.12.2.1
+* Refactor in a few views to keep compatibility with MonadFail changes.
+
 0.12.2.0
 * Loosen dependencies.
 
diff --git a/snap-extras.cabal b/snap-extras.cabal
--- a/snap-extras.cabal
+++ b/snap-extras.cabal
@@ -1,5 +1,5 @@
 Name:                snap-extras
-Version:             0.12.2.0
+Version:             0.12.2.1
 Synopsis:            A collection of useful helpers and utilities for Snap web applications.
 Description:         This package contains a collection of helper functions
                      that come in handy in most practical, real-world
@@ -48,7 +48,7 @@
 
   hs-source-dirs: src
   Build-depends:
-      aeson                    >= 0.6   && < 1.3
+      aeson                    >= 0.6   && < 1.4
     , base                     >= 4     && < 5
     , blaze-builder            >= 0.3   && < 0.5
     , blaze-html               >= 0.6   && < 0.10
@@ -62,19 +62,19 @@
     , digestive-functors-snap  >= 0.3   && < 0.8
     , directory-tree           >= 0.10  && < 0.13
     , filepath                 >= 1.1   && < 1.5
-    , heist                    >= 0.14  && < 1.1
+    , heist                    >= 0.14  && < 1.2
     , jmacro                   >= 0.6   && < 0.7
     , lens                     < 5
     , mtl                      >= 2.0   && < 2.3
     , pcre-light               >= 0.4   && < 0.5
     , readable                 >= 0.1   && < 0.4
     , safe                     >= 0.3   && < 0.4
-    , snap                     >= 0.9  && < 1.1
-    , snap-core                >= 0.9   && < 1.1
+    , snap                     >= 0.9  && < 1.2
+    , snap-core                >= 0.9   && < 1.2
     , text                     >= 0.11  && < 1.3
     , time                     >= 1.4   && < 1.9
     , transformers             >= 0.2   && < 0.6
-    , wl-pprint-text           >= 1.1   && < 1.2
+    , wl-pprint-text           >= 1.1   && < 1.3
     , xmlhtml                  >= 0.1.6 && < 0.3
     , map-syntax
 
diff --git a/src/Snap/Extras/SpliceUtils/Interpreted.hs b/src/Snap/Extras/SpliceUtils/Interpreted.hs
--- a/src/Snap/Extras/SpliceUtils/Interpreted.hs
+++ b/src/Snap/Extras/SpliceUtils/Interpreted.hs
@@ -68,7 +68,9 @@
  where
    ta = do
      hs <- getHS
-     n@(Element t ats _) <- getParamNode
+     n <- getParamNode
+     -- TODO Incomplete pattern matching.
+     let (Element t ats _) = n
      let nm = nodeText n
      case lookupSplice nm hs of
        Just spl -> do
@@ -146,7 +148,9 @@
 -- > beta-functions-enabled = true
 ifFlagSplice :: SnapletISplice b
 ifFlagSplice = do
-  Element _ ats es <- getParamNode
+  e <- getParamNode
+  -- TODO Incomplete pattern matching!
+  let (Element _ ats es) = e
   conf <- lift getSnapletUserConfig
   case lookup "ref" ats of
     Nothing -> return []
diff --git a/src/Snap/Extras/Tabs.hs b/src/Snap/Extras/Tabs.hs
--- a/src/Snap/Extras/Tabs.hs
+++ b/src/Snap/Extras/Tabs.hs
@@ -76,7 +76,9 @@
 -- attributes in order to get ${} splice substitution.
 tabCSplice :: Monad m => RuntimeSplice m Text -> C.Splice m
 tabCSplice getCtx = do
-    (Element _ attrs ch) <- getParamNode
+    e <- getParamNode
+    -- TODO Incomplete pattern matching!
+    let (Element _ attrs ch) = e
     attrsAction <- C.runAttributesRaw attrs
     nodes <- C.codeGen `fmap` C.runNodeList ch
     let ps as context = do
