diff --git a/happstack.cabal b/happstack.cabal
--- a/happstack.cabal
+++ b/happstack.cabal
@@ -1,5 +1,5 @@
 Name:                happstack
-Version:             0.5.0.2
+Version:             0.5.0.3
 Synopsis:            The haskell application server stack + code generation
 Description:         The haskell application server stack
 License:             BSD3
@@ -84,7 +84,7 @@
                        hsx >= 0.7 && < 0.8,
                        hsp >= 0.5.2 && < 0.6,
                        HStringTemplate >= 0.4.3 && < 0.7,
-                       mtl,
+                       mtl >= 1.1 && < 2.1,
                        old-time,
                        utf8-string,
                        text
diff --git a/src/HSP/ServerPartT.hs b/src/HSP/ServerPartT.hs
--- a/src/HSP/ServerPartT.hs
+++ b/src/HSP/ServerPartT.hs
@@ -3,9 +3,9 @@
 module HSP.ServerPartT where
 
 import HSP
-import Control.Applicative ((<$>))
-import qualified Data.Text as T
-import qualified Data.Text.Lazy as TL
+import Control.Monad              (liftM)
+import qualified Data.Text        as T
+import qualified Data.Text.Lazy   as TL
 import qualified HSX.XMLGenerator as HSX
 import Happstack.Server (ServerPartT)
 
@@ -14,8 +14,8 @@
     newtype HSX.Child (ServerPartT m) = SChild { unSChild :: XML }
     newtype HSX.Attribute (ServerPartT m) = SAttr { unSAttr :: Attribute }
     genElement n attrs children = 
-        do attribs <- map unSAttr <$> asAttr attrs
-           childer <- flattenCDATA . map unSChild <$> asChild children
+        do attribs <- map unSAttr `liftM` asAttr attrs
+           childer <- (flattenCDATA . map unSChild) `liftM`asChild children
            HSX.XMLGenT $ return (Element
                               (toName n)
                               attribs
diff --git a/src/HSP/WebT.hs b/src/HSP/WebT.hs
--- a/src/HSP/WebT.hs
+++ b/src/HSP/WebT.hs
@@ -3,7 +3,7 @@
 module HSP.WebT where
 
 import HSP
-import Control.Applicative ((<$>))
+import Control.Monad (liftM)
 import qualified Data.Text as T
 import qualified Data.Text.Lazy as TL
 import qualified HSX.XMLGenerator as HSX
@@ -14,8 +14,8 @@
     newtype HSX.Child (WebT m) = WChild { unWChild :: XML }
     newtype HSX.Attribute (WebT m) = WAttr { unWAttr :: Attribute }
     genElement n attrs children = 
-        do attribs <- map unWAttr <$> asAttr attrs
-           childer <- flattenCDATA . map unWChild <$> asChild children
+        do attribs <- map unWAttr `liftM` asAttr attrs
+           childer <- (flattenCDATA . map unWChild) `liftM` asChild children
            HSX.XMLGenT $ return (Element
                               (toName n)
                               attribs
