diff --git a/Yesod/Core/Handler.hs b/Yesod/Core/Handler.hs
--- a/Yesod/Core/Handler.hs
+++ b/Yesod/Core/Handler.hs
@@ -194,7 +194,7 @@
 import           Yesod.Core.Class.Handler
 import           Yesod.Core.Types
 import           Yesod.Routes.Class            (Route)
-import Control.Failure (failure)
+import Control.Exception (throwIO)
 import Blaze.ByteString.Builder (Builder)
 import Safe (headMay)
 import Data.CaseInsensitive (CI)
@@ -229,7 +229,7 @@
 tell hs = modify $ \g -> g { ghsHeaders = ghsHeaders g `mappend` hs }
 
 handlerError :: MonadHandler m => HandlerContents -> m a
-handlerError = liftHandlerT . failure
+handlerError = liftIO . throwIO
 
 hcError :: MonadHandler m => ErrorResponse -> m a
 hcError = handlerError . HCError
diff --git a/yesod-core.cabal b/yesod-core.cabal
--- a/yesod-core.cabal
+++ b/yesod-core.cabal
@@ -1,5 +1,5 @@
 name:            yesod-core
-version:         1.2.9
+version:         1.2.9.1
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -43,7 +43,6 @@
                    , random                >= 1.0.0.2  && < 1.1
                    , cereal                >= 0.3
                    , old-locale            >= 1.0.0.2  && < 1.1
-                   , failure               >= 0.2      && < 0.3
                    , containers            >= 0.2
                    , monad-control         >= 0.3      && < 0.4
                    , transformers-base     >= 0.4
