diff --git a/happstack-hsp.cabal b/happstack-hsp.cabal
--- a/happstack-hsp.cabal
+++ b/happstack-hsp.cabal
@@ -1,5 +1,5 @@
 Name:                happstack-hsp
-Version:             7.2.1
+Version:             7.2.2
 Synopsis:            Support for using HSP templates in Happstack
 Description:         Happstack is a web application framework. HSP is an XML templating solution. This package makes it easy to use HSP templates with Happstack.
 Homepage:            http://www.happstack.com/
@@ -31,7 +31,7 @@
                        bytestring       >= 0.9 && < 0.11,
                        happstack-server >= 6.0 && < 7.4,
                        harp             >= 0.4 && < 0.5,
-                       hsp              >= 0.9 && < 0.10,
+                       hsp              >= 0.9.2 && < 0.10,
                        mtl              >= 1.1 && < 2.2,
                        utf8-string      == 0.3.*,
                        syb              >= 0.3 && < 0.5,
diff --git a/src/Happstack/Server/XMLGenT.hs b/src/Happstack/Server/XMLGenT.hs
--- a/src/Happstack/Server/XMLGenT.hs
+++ b/src/Happstack/Server/XMLGenT.hs
@@ -8,6 +8,7 @@
 import Control.Monad.Trans         (MonadIO(..))
 import Happstack.Server.SimpleHTTP (ServerMonad(..), FilterMonad(..), WebMonad(..), HasRqData(..), Happstack(..), Response)
 import HSP.XMLGenerator            (XMLGenT(..))
+import HSP.Monad                   (HSPT(..))
 
 instance (ServerMonad m) => ServerMonad (XMLGenT m) where
     askRq = XMLGenT askRq
@@ -27,3 +28,22 @@
     rqDataError = XMLGenT . rqDataError
 
 instance (Alternative m, MonadPlus m, Functor m, MonadIO m, ServerMonad m, FilterMonad a m, WebMonad a m, HasRqData m, a ~ Response) => Happstack (XMLGenT m)
+
+instance (ServerMonad m) => ServerMonad (HSPT xml m) where
+    askRq              = HSPT askRq
+    localRq f (HSPT m) = HSPT (localRq f m)
+
+instance (FilterMonad a m) => FilterMonad a (HSPT xml m) where
+    setFilter          = HSPT . setFilter
+    composeFilter f    = HSPT (composeFilter f)
+    getFilter (HSPT m) = HSPT (getFilter m)
+
+instance (WebMonad a m) => WebMonad a (HSPT xml m) where
+    finishWith r       = HSPT $ finishWith r
+
+instance (HasRqData m) => (HasRqData (HSPT xml m)) where
+    askRqEnv              = HSPT askRqEnv
+    localRqEnv f (HSPT m) = HSPT (localRqEnv f m)
+    rqDataError           = HSPT . rqDataError
+
+instance (Alternative m, MonadPlus m, Functor m, MonadIO m, ServerMonad m, FilterMonad a m, WebMonad a m, HasRqData m, a ~ Response) => Happstack (HSPT xml m)
