diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,17 @@
+2009.5.19
+---------
+
+### Feature
+
+* Compatible with hack 5.19
+
+2009.4.52.1
+-----------
+
+### Fix
+
+* Export ServerConf data constructor, thanks to Stefan's patch
+
 2009.4.52
 ---------
 
diff --git a/hack-handler-happstack.cabal b/hack-handler-happstack.cabal
--- a/hack-handler-happstack.cabal
+++ b/hack-handler-happstack.cabal
@@ -1,5 +1,5 @@
 Name:                 hack-handler-happstack
-Version:              2009.4.52
+Version:              2009.5.19
 Build-type:           Simple
 Synopsis:             Hack Happstack server handler
 Description:          Hack Happstack server handler
@@ -15,7 +15,7 @@
 
 library
   ghc-options: -Wall
-  build-depends: base, cgi, network, bytestring, data-default >= 0.2, hack >= 2009.4.52, happstack-server >= 0.2.1, containers, mtl
+  build-depends: base, cgi, network, bytestring, data-default >= 0.2, hack >= 2009.5.19, happstack-server >= 0.2.1, containers, mtl
   hs-source-dirs: src/
   exposed-modules:  
                     Hack.Handler.Happstack
diff --git a/src/Hack/Handler/Happstack.hs b/src/Hack/Handler/Happstack.hs
--- a/src/Hack/Handler/Happstack.hs
+++ b/src/Hack/Handler/Happstack.hs
@@ -1,8 +1,12 @@
+-- code structure is written by John MacFarlane, 
+-- I filled in some missing pieces and make it compile.
+
 {-# LANGUAGE TypeSynonymInstances, DeriveDataTypeable #-}
 
-module Hack.Handler.Happstack (run, runWithConfig, ServerConf) where
+module Hack.Handler.Happstack (run, runWithConfig, ServerConf(..)) where
 
-import Hack as Hack
+import qualified Hack as Hack
+import Hack hiding (serverName)
 import Happstack.Server.SimpleHTTP as Happstack hiding (port)
 import qualified Happstack.Server.SimpleHTTP as H
 
@@ -14,7 +18,6 @@
 import Data.Maybe
 
 import qualified Data.Map as M
-import qualified Data.ByteString.Lazy.Char8 as C
 import qualified Data.ByteString as L
 import qualified Data.ByteString.Internal as I
 
@@ -38,14 +41,14 @@
 
   where
     reqToEnv conf' req =
-      def { request_method = convertRequestMethod $ rqMethod req
-          , script_name    = ""
-          , path_info      = "/" ++ (intercalate "/" $ rqPaths req)
-          , query_string   = remove_question_mark $ rqQuery req
-          , server_name    = serverName conf' -- (fst $ rqPeer req) is supposed to work, but does not
-          , server_port    = port conf'
+      def { requestMethod = convertRequestMethod $ rqMethod req
+          , scriptName    = ""
+          , pathInfo      = "/" ++ (intercalate "/" $ rqPaths req)
+          , queryString   = remove_question_mark $ rqQuery req
+          , Hack.serverName    = serverName conf' -- (fst $ rqPeer req) is supposed to work, but does not
+          , serverPort    = port conf'
           , http           = toHttp (rqHeaders req)
-          , hack_input     = (\(Body x) -> C.unpack x) (rqBody req)
+          , hackInput     = (\(Body x) -> x) (rqBody req)
           }
     remove_question_mark = dropWhile (== '?')
     
@@ -69,19 +72,21 @@
   where b2s x = map I.w2c $ L.unpack x
 
 toHappstackResponse :: Hack.Response -> Happstack.Response
-toHappstackResponse resp =
- Happstack.Response { rsCode = Hack.status resp
-                    , rsHeaders = convertHeaders $ Hack.headers resp
-                    , rsFlags = RsFlags {rsfContentLength = False}
-                    , rsBody = C.pack $ Hack.body resp
-                    , rsValidator = Nothing }
+toHappstackResponse resp = Happstack.Response 
+  {  rsCode      = Hack.status resp
+  ,  rsHeaders   = convertHeaders $ Hack.headers resp
+  ,  rsFlags     = RsFlags {rsfContentLength = False}
+  ,  rsBody      = Hack.body resp
+  ,  rsValidator = Nothing }
 
 
+
 convertHeaders :: [(String, String)] -> Happstack.Headers
 convertHeaders = map pairToHeader >>> M.fromList
   where 
     pairToHeader (k,v) = ((c2b $ map toLower k), HeaderPair (c2b k) [c2b v])
-    c2b x = L.pack $ map I.c2w x
+    c2b x              = L.pack $ map I.c2w x
+
   
 
 -- happstack converts all request header to lowercase ...
