diff --git a/src/Network/TigHTTP/Client.hs b/src/Network/TigHTTP/Client.hs
--- a/src/Network/TigHTTP/Client.hs
+++ b/src/Network/TigHTTP/Client.hs
@@ -68,7 +68,9 @@
 	(n :: Int) <- lift $ (fst . head . readHex . BSC.unpack) `liftM` hlGetLine h
 	lift . hlDebug h "medium" . BSC.pack . (++ "\n") $ show n
 	case n of
-		0 -> return ()
+		0 -> do	l <- lift $ hlGetLine h
+			lift . hlDebug h "medium" . BSC.pack . (++ "\n") $ show l
+			return ()
 		_ -> do	r <- lift $ hlGet h n
 			"" <- lift $ hlGetLine h
 			yield r
@@ -117,4 +119,5 @@
 hGetHeader :: HandleLike h => h -> HandleMonad h [BS.ByteString]
 hGetHeader h = do
 	l <- hlGetLine h
+	hlDebug h "medium" $ l `BS.append` "\n"
 	if BS.null l then return [] else (l :) `liftM` hGetHeader h
diff --git a/src/Network/TigHTTP/HttpTypes.hs b/src/Network/TigHTTP/HttpTypes.hs
--- a/src/Network/TigHTTP/HttpTypes.hs
+++ b/src/Network/TigHTTP/HttpTypes.hs
@@ -178,7 +178,7 @@
 		case BS.splitAt 2 csv of
 			(": ", v) -> (k, v)
 			_ -> error "parse: bad"
-parseReq [] = error "parse: bad request"
+parseReq [] = error "parse: null request"
 
 parseSep :: HandleLike h => RequestType ->
 	Path -> Version -> [(BS.ByteString, BS.ByteString)] -> Request h
@@ -430,9 +430,9 @@
 	separate i = let (k, csv) = BSC.span (/= ':') i in
 		case BS.splitAt 2 csv of
 			(": ", v) -> (k, v)
-			_ -> error "parseResponse: bad response"
+			_ -> error $ "parseResponse: bad response: " ++ show csv
 	-- let (k, ':' : ' ' : v) = span (/= ':') i in (k, v)
-parseResponse _ = error "parseResponse: bad response"
+parseResponse _ = error "parseResponse: null response"
 
 parseResponseSep :: (
 	Monad (p () BS.ByteString (HandleMonad h)),
diff --git a/src/Network/TigHTTP/Server.hs b/src/Network/TigHTTP/Server.hs
--- a/src/Network/TigHTTP/Server.hs
+++ b/src/Network/TigHTTP/Server.hs
@@ -26,7 +26,7 @@
 
 getRequest :: HandleLike h => h -> HandleMonad h (Request h)
 getRequest cl = do
-	h <- hlGetHeader cl
+	h <- hlGetHeader' cl
 	let req = parseReq h
 	r <- case req of
 		RequestPost {} -> return . httpContent cl $
@@ -82,7 +82,13 @@
 	responseBody = fromList $ LBS.toChunks cnt
  }
 
+hlGetHeader' :: HandleLike h => h -> HandleMonad h [BS.ByteString]
+hlGetHeader' h = do
+	l <- hlGetLine h
+	if BS.null l then hlGetHeader' h else (l :) `liftM` hlGetHeader h
+
 hlGetHeader :: HandleLike h => h -> HandleMonad h [BS.ByteString]
 hlGetHeader h = do
 	l <- hlGetLine h
+	hlDebug h "medium" l
 	if BS.null l then return [] else (l :) `liftM` hlGetHeader h
diff --git a/tighttp.cabal b/tighttp.cabal
--- a/tighttp.cabal
+++ b/tighttp.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>= 1.8
 
 name:		tighttp
-version:	0.0.0.1
+version:	0.0.0.2
 stability:	Experimental
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
@@ -101,7 +101,7 @@
 source-repository	this
     type:	git
     location:	git://github.com/YoshikuniJujo/tighttp.git
-    tag:	tighttp-0.0.0.1
+    tag:	tighttp-0.0.0.2
 
 library
     hs-source-dirs:	src
