diff --git a/Web/Routes/XMLGenT.hs b/Web/Routes/XMLGenT.hs
--- a/Web/Routes/XMLGenT.hs
+++ b/Web/Routes/XMLGenT.hs
@@ -6,29 +6,23 @@
 import Control.Applicative ((<$>))
 import qualified Data.Text as T
 import qualified Data.Text.Lazy as TL
-import qualified HSX.XMLGenerator as HSX
+import {- qualified -} HSX.XMLGenerator -- as HSX
 import Web.Routes.RouteT (RouteT, MonadRoute(..), showURL, URL)
 
-instance (Functor m, Monad m) => HSX.XMLGen (RouteT url m) where
-#if __GLASGOW_HASKELL__ < 702
-    type HSX.XML (RouteT url m) = XML
-    newtype HSX.Child (RouteT url m) = UChild { unUChild :: XML }
-    newtype HSX.Attribute (RouteT url m) = UAttr { unUAttr :: Attribute }
-#else
-    type XML (RouteT url m) = XML
-    newtype Child (RouteT url m) = UChild { unUChild :: XML }
-    newtype Attribute (RouteT url m) = UAttr { unUAttr :: Attribute }
-#endif
+instance (Functor m, Monad m) => XMLGen (RouteT url m) where
+    type XMLType (RouteT url m) = XML
+    newtype ChildType (RouteT url m) = UChild { unUChild :: XML }
+    newtype AttributeType (RouteT url m) = UAttr { unUAttr :: Attribute }
     genElement n attrs children =
         do attribs <- map unUAttr <$> asAttr attrs
            childer <- flattenCDATA . map unUChild <$> asChild children
-           HSX.XMLGenT $ return (Element
+           return (Element
                               (toName n)
                               attribs
                               childer
                              )
     xmlToChild = UChild
-    pcdataToChild = HSX.xmlToChild . pcdata
+    pcdataToChild = xmlToChild . pcdata
 
 flattenCDATA :: [XML] -> [XML]
 flattenCDATA cxml =
@@ -50,23 +44,23 @@
 instance (Monad m, Functor m) => IsAttrValue (RouteT url m) TL.Text where
     toAttrValue = toAttrValue . TL.unpack
 
-instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) Attribute where
+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) Attribute where
     asAttr = return . (:[]) . UAttr
 
-instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String Char) where
+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String Char) where
     asAttr (n := c)  = asAttr (n := [c])
 
-instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String String) where
+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String String) where
     asAttr (n := str)  = asAttr $ MkAttr (toName n, pAttrVal str)
 
-instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String Bool) where
+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String Bool) where
     asAttr (n := True)  = asAttr $ MkAttr (toName n, pAttrVal "true")
     asAttr (n := False) = asAttr $ MkAttr (toName n, pAttrVal "false")
 
-instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String Int) where
+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String Int) where
     asAttr (n := i)  = asAttr $ MkAttr (toName n, pAttrVal (show i))
 
-instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String Integer) where
+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String Integer) where
     asAttr (n := i)  = asAttr $ MkAttr (toName n, pAttrVal (show i))
 
 instance (Monad m, Functor m, IsName n) => (EmbedAsAttr (RouteT url m) (Attr n TL.Text)) where
@@ -116,4 +110,4 @@
 
 instance (MonadRoute m) => MonadRoute (XMLGenT m) where
     type URL (XMLGenT m) = URL m
-    askRouteFn = XMLGenT $ askRouteFn
+    askRouteFn = XMLGenT askRouteFn
diff --git a/web-routes-hsp.cabal b/web-routes-hsp.cabal
--- a/web-routes-hsp.cabal
+++ b/web-routes-hsp.cabal
@@ -1,5 +1,5 @@
 Name:             web-routes-hsp
-Version:          0.22.1
+Version:          0.23.0
 License:          BSD3
 License-File:     LICENSE
 Author:           jeremy@seereason.com
@@ -11,13 +11,15 @@
 Build-type:       Simple
 
 Library
-        Build-Depends:    base >= 4 && < 5,
-                          hsx >= 0.7.0,
-                          hsp,
-                          text,
-                          web-routes >= 0.26
+        Build-Depends:    base       >= 4      && < 5,
+                          hsx        >= 0.10.2 && < 0.11,
+                          hsp        >= 0.7.1  && < 0.8,
+                          text       == 0.11.*,
+                          web-routes >= 0.26   && < 0.28
+
         Exposed-Modules:  Web.Routes.XMLGenT
 
 source-repository head
     type:     darcs
+    subdir:   web-routes-hsp
     location: http://src.seereason.com/web-routes/
