diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,10 @@
+2009.6.24.1
+-----------
+
+### Fix
+
+* unescape uri
+
 2009.6.24
 ---------
 
diff --git a/hack-frontend-happstack.cabal b/hack-frontend-happstack.cabal
--- a/hack-frontend-happstack.cabal
+++ b/hack-frontend-happstack.cabal
@@ -1,5 +1,5 @@
 Name:                 hack-frontend-happstack
-Version:              2009.6.24
+Version:              2009.6.24.1
 Build-type:           Simple
 Synopsis:             hack-frontend-happstack
 Description:
diff --git a/src/Hack/Frontend/Happstack.hs b/src/Hack/Frontend/Happstack.hs
--- a/src/Hack/Frontend/Happstack.hs
+++ b/src/Hack/Frontend/Happstack.hs
@@ -1,17 +1,18 @@
 module Hack.Frontend.Happstack where
 
+import Data.Foldable (toList)
+import Data.Maybe
+import Hack (http, pathInfo, scriptName, queryString, hackInput, serverName, serverPort, Application)
 import Happstack.Server
 import Happstack.Server.HTTP.Types (Request (..), Version (Version))
-import qualified Data.ByteString.Char8 as S
-import qualified Happstack.Server as H
 import Happstack.Server.SURI (parse)
-import qualified Hack as Hack
+import Network.URI (unEscapeString)
+import qualified Data.ByteString.Char8 as S
 import qualified Hack
-import Hack (http, pathInfo, scriptName, queryString, hackInput, serverName, serverPort, Application)
-import Data.Maybe
-import Data.Foldable (toList)
-import Network.URI (escapeURIString, isAllowedInURI)
+import qualified Hack as Hack
+import qualified Happstack.Server as H
 
+
 serverPartToApp :: (ToMessage b) => ServerPartT IO b -> Application
 serverPartToApp = convert . processRequest
 
@@ -40,7 +41,7 @@
   tmpRequest
     { rqInputs = queryInput uri ++ bodyInput tmpRequest }
   where
-    uri = fromJust $ parse $ escape_uri $ concat $ map (\f -> f env) 
+    uri = fromJust $ parse $ concat $ map (\f -> f env) 
       [ serverName
       , const ":"
       , show . serverPort
@@ -50,9 +51,9 @@
       ]
     tmpRequest = 
       Request { rqMethod  = convertRequestMethod $ Hack.requestMethod env
-              , rqPaths   = split '/' $ pathInfo env
-              , rqUri	    = scriptName env ++ pathInfo env
-              , rqQuery   = add_q $ queryString env
+              , rqPaths   = split '/' $ unescape $ pathInfo env
+              , rqUri	    = unescape $ scriptName env ++ pathInfo env
+              , rqQuery   = unescape $ add_q $ queryString env
               , rqInputs  = []
               , rqCookies = readCookies $ http env
               , rqVersion = Version 1 1
@@ -60,7 +61,7 @@
               , rqBody    = Body $ hackInput env
               , rqPeer    = (serverName env, serverPort env)
               }
-    escape_uri = escapeURIString isAllowedInURI
+    unescape = unEscapeString
   
     convertRequestMethod Hack.OPTIONS     =     OPTIONS
     convertRequestMethod Hack.GET         =     GET
