diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Changelog
 
+### 0.3.1
+
+* Generalize type of `apiToHandler` to allow transformer stacks on top
+  of `ServerPartT`. Thanks to ariep.
+
 ## 0.3
 
 * Breaking: `Applicative` and `Monad` constraint on `m` in
diff --git a/rest-happstack.cabal b/rest-happstack.cabal
--- a/rest-happstack.cabal
+++ b/rest-happstack.cabal
@@ -1,5 +1,5 @@
 name:                rest-happstack
-version:             0.3
+version:             0.3.1
 description:         Rest driver for Happstack.
 synopsis:            Rest driver for Happstack.
 maintainer:          code@silk.co
diff --git a/src/Rest/Driver/Happstack.hs b/src/Rest/Driver/Happstack.hs
--- a/src/Rest/Driver/Happstack.hs
+++ b/src/Rest/Driver/Happstack.hs
@@ -22,10 +22,10 @@
 import qualified Rest.Driver.Types as Rest
 import qualified Rest.Run          as Rest
 
-apiToHandler :: (Functor m, MonadPlus m, MonadIO m) => Api (ServerPartT m) -> ServerPartT m Response
+apiToHandler :: (Functor m, MonadPlus m, MonadIO m, Rest m) => Api m -> m Response
 apiToHandler = apiToHandler' id
 
-apiToHandler' :: (Applicative m, Functor n, Monad m, MonadPlus n, MonadIO n) => Run m (ServerPartT n) -> Api m -> ServerPartT n Response
+apiToHandler' :: (Applicative m, Functor n, Monad m, MonadPlus n, MonadIO n, Rest n) => Run m n -> Api m -> n Response
 apiToHandler' run api = toResponse <$> Rest.apiToHandler' run api
 
 instance (Functor m, MonadPlus m, MonadIO m) => Rest (ServerPartT m) where
