diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/src/Network/Wai/Trans.hs b/src/Network/Wai/Trans.hs
--- a/src/Network/Wai/Trans.hs
+++ b/src/Network/Wai/Trans.hs
@@ -19,19 +19,24 @@
 
 
 module Network.Wai.Trans
-  ( module X
+  ( -- * Types
+    module Network.Wai
   , ApplicationT
   , MiddlewareT
   , liftApplication
   , liftMiddleware
   , runApplicationT
   , runMiddlewareT
+  , -- * Exception catching
+    catchApplicationT
+  , catchMiddlewareT
   ) where
 
 
-import           Network.Wai as X
+import           Network.Wai
 
 import           Control.Monad.IO.Class
+import           Control.Monad.Catch
 
 -- | Isomorphic to @Kleisli (ContT ResponseReceived m) Request Response@
 type ApplicationT m = Request -> (Response -> m ResponseReceived) -> m ResponseReceived
@@ -49,4 +54,18 @@
 
 runMiddlewareT :: MonadIO m => (forall a. m a -> IO a) -> MiddlewareT m -> Middleware
 runMiddlewareT run mid app = runApplicationT run (mid (liftApplication run app))
+
+
+catchApplicationT :: ( MonadCatch m
+                     , Exception e
+                     ) => ApplicationT m -> (e -> ApplicationT m) -> ApplicationT m
+catchApplicationT x f req respond =
+  (x req respond) `catch` (\e -> f e req respond)
+
+catchMiddlewareT :: ( MonadIO m
+                    , MonadCatch m
+                    , Exception e
+                    ) => MiddlewareT m -> (e -> MiddlewareT m) -> MiddlewareT m
+catchMiddlewareT x f app =
+  (x app) `catchApplicationT` (\e -> f e app)
 
diff --git a/wai-transformers.cabal b/wai-transformers.cabal
--- a/wai-transformers.cabal
+++ b/wai-transformers.cabal
@@ -1,5 +1,5 @@
 Name:                   wai-transformers
-Version:                0.0.3
+Version:                0.0.4
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                BSD3
@@ -15,7 +15,8 @@
   HS-Source-Dirs:       src
   GHC-Options:          -Wall
   Exposed-Modules:      Network.Wai.Trans
-  Build-Depends:        base >= 4.6 && < 5
+  Build-Depends:        base >= 4.8 && < 5
+                      , exceptions
                       , wai
                       , transformers
 
