diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,8 @@
+0.8.1
+-----
+* Support for throwing in the `template-haskell` `Q` monad
+* Support for `transformers` 0.5
+
 0.8.0.1
 -------
 * Resolved warnings on GHC 7.10 and with transformers 0.4.
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -1,7 +1,7 @@
 exceptions
 ==========
 
-[![Build Status](https://secure.travis-ci.org/ekmett/exceptions.png?branch=master)](http://travis-ci.org/ekmett/exceptions)
+[![Hackage](https://img.shields.io/hackage/v/exceptions.svg)](https://hackage.haskell.org/package/exceptions) [![Build Status](https://secure.travis-ci.org/ekmett/exceptions.png?branch=master)](http://travis-ci.org/ekmett/exceptions)
 
 This package provides (optionally pure) extensible exceptions that are compatible with the monad transformer library.
 
diff --git a/exceptions.cabal b/exceptions.cabal
--- a/exceptions.cabal
+++ b/exceptions.cabal
@@ -1,6 +1,6 @@
 name:          exceptions
 category:      Control, Exceptions, Monad
-version:       0.8.0.2
+version:       0.8.1
 cabal-version: >= 1.8
 license:       BSD3
 license-file:  LICENSE
@@ -35,7 +35,8 @@
   build-depends:
     base                       >= 4.3      && < 5,
     stm                        >= 2.2      && < 3,
-    transformers               >= 0.2      && < 0.5,
+    template-haskell           >= 2.2      && < 2.11,
+    transformers               >= 0.2      && < 0.6,
     transformers-compat        >= 0.3      && < 0.5,
     mtl                        >= 2.0      && < 2.3
 
@@ -55,6 +56,7 @@
   build-depends:
     base,
     stm,
+    template-haskell,
     transformers,
     transformers-compat,
     mtl,
diff --git a/src/Control/Monad/Catch.hs b/src/Control/Monad/Catch.hs
--- a/src/Control/Monad/Catch.hs
+++ b/src/Control/Monad/Catch.hs
@@ -93,6 +93,8 @@
 import Control.Monad.Trans.Identity
 import Control.Monad.Reader as Reader
 
+import Language.Haskell.TH.Syntax (Q)
+
 #if __GLASGOW_HASKELL__ < 706
 import Prelude hiding (catch, foldr)
 import Data.Foldable
@@ -183,6 +185,8 @@
   throwM _ = Nothing
 instance e ~ SomeException => MonadThrow (Either e) where
   throwM = Left . toException
+instance MonadThrow Q where
+  throwM = fail . show
 
 instance MonadThrow IO where
   throwM = ControlException.throwIO
diff --git a/src/Control/Monad/Catch/Pure.hs b/src/Control/Monad/Catch/Pure.hs
--- a/src/Control/Monad/Catch/Pure.hs
+++ b/src/Control/Monad/Catch/Pure.hs
@@ -105,7 +105,7 @@
   (<*>) = ap
 
 instance Monad m => Monad (CatchT m) where
-  return a = CatchT (return (Right a))
+  return = pure
   CatchT m >>= k = CatchT $ m >>= \ea -> case ea of
     Left e -> return (Left e)
     Right a -> runCatchT (k a)
