diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,11 @@
+2009.4.51
+-----------
+
+### Fix
+
+* translate lowercase header to normal header for env
+* don't get server name, that cause a crash
+
 2009.4.50
 ---------
 
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.50
+Version:              2009.4.51
 Build-type:           Simple
 Synopsis:             Hyena Kibro handler
 Description:          Hyena Kibro handler
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
@@ -10,6 +10,7 @@
 import Control.Monad.Trans
 import Data.List
 import Data.Char
+import Data.Maybe
 
 import qualified Data.Map as M
 import qualified Data.ByteString.Lazy.Char8 as C
@@ -36,7 +37,7 @@
           , script_name = ""
           , path_info = "/" ++ (intercalate "/" $ rqPaths req)
           , query_string = rqQuery req
-          , server_name = fst $ rqPeer req
+          , server_name = "" -- fst $ rqPeer req
           , server_port = port conf'
           , http = toHttp (rqHeaders req)
           , hack_input = (\(Body x) -> C.unpack x) (rqBody req)
@@ -58,7 +59,7 @@
 toHttp = M.toList >>> map snd >>> map headerToPair
 
 headerToPair :: HeaderPair -> (String, String)
-headerToPair (HeaderPair k v) = (b2s k, intercalate " " $ map b2s v)
+headerToPair (HeaderPair k v) = (translate_header $ b2s k, intercalate " " $ map b2s v)
   where b2s x = map I.w2c $ L.unpack x
 
 toHappstackResponse :: Hack.Response -> Happstack.Response
@@ -77,3 +78,62 @@
     c2b x = L.pack $ map I.c2w x
   
 
+-- happstack convert all request header to lowercase ...
+
+translate_header :: String -> String
+translate_header s = fromMaybe s $ find (map toLower >>> (== s) ) header_list
+
+header_list :: [String]
+header_list = 
+  [    "Cache-Control"        
+  ,    "Connection"           
+  ,    "Date"                 
+  ,    "Pragma"               
+  ,    "Transfer-Encoding"    
+  ,    "Upgrade"              
+  ,    "Via"                  
+  ,    "Accept"               
+  ,    "Accept-Charset"       
+  ,    "Accept-Encoding"      
+  ,    "Accept-Language"      
+  ,    "Authorization"        
+  ,    "Cookie"               
+  ,    "Expect"               
+  ,    "From"                 
+  ,    "Host"                 
+  ,    "If-Modified-Since"    
+  ,    "If-Match"             
+  ,    "If-None-Match"        
+  ,    "If-Range"             
+  ,    "If-Unmodified-Since"  
+  ,    "Max-Forwards"         
+  ,    "Proxy-Authorization"  
+  ,    "Range"                
+  ,    "Referer"              
+  ,    "User-Agent"           
+  ,    "Age"                  
+  ,    "Location"             
+  ,    "Proxy-Authenticate"   
+  ,    "Public"               
+  ,    "Retry-After"          
+  ,    "Server"               
+  ,    "Set-Cookie"           
+  ,    "TE"                   
+  ,    "Trailer"              
+  ,    "Vary"                 
+  ,    "Warning"              
+  ,    "WWW-Authenticate"     
+  ,    "Allow"                
+  ,    "Content-Base"         
+  ,    "Content-Encoding"     
+  ,    "Content-Language"     
+  ,    "Content-Length"       
+  ,    "Content-Location"     
+  ,    "Content-MD5"          
+  ,    "Content-Range"        
+  ,    "Content-Type"         
+  ,    "ETag"                 
+  ,    "Expires"              
+  ,    "Last-Modified"        
+  ,    "Content-Transfer-Encodeing"
+  ]
