diff --git a/Network/HTTP/Conduit/Parser.hs b/Network/HTTP/Conduit/Parser.hs
--- a/Network/HTTP/Conduit/Parser.hs
+++ b/Network/HTTP/Conduit/Parser.hs
@@ -32,7 +32,7 @@
     newline
     return (k, v)
 
-notNewlineColon, isSpace, notNewline :: Word8 -> Bool
+notNewlineColon, isSpace, isNumber, notNewline :: Word8 -> Bool
 
 notNewlineColon 10 = False -- LF
 notNewlineColon 13 = False -- CR
@@ -42,6 +42,8 @@
 isSpace 32 = True
 isSpace _  = False
 
+isNumber i = 0x30 <= i && i <= 0x39
+
 notNewline 10 = False
 notNewline 13 = False
 notNewline _  = True
@@ -77,13 +79,12 @@
     _ <- manyTill (take 1 >> return ()) (try $ string "HTTP/") <?> "HTTP/"
     ver <- takeWhile1 $ not . isSpace
     _ <- word8 32 -- space
-    statCode <- takeWhile1 $ not . isSpace
+    statCode <- takeWhile1 isNumber
     statCode' <-
         case reads $ S8.unpack statCode of
             [] -> fail $ "Invalid status code: " ++ S8.unpack statCode
             (x, _):_ -> return x
-    _ <- word8 32
-    statMsg <- takeWhile1 $ notNewline
+    statMsg <- try (word8 32 >> takeWhile notNewline) <|> return ""
     newline
     if (statCode == "100")
         then newline >> parseStatus
diff --git a/http-conduit.cabal b/http-conduit.cabal
--- a/http-conduit.cabal
+++ b/http-conduit.cabal
@@ -1,5 +1,5 @@
 name:            http-conduit
-version:         1.6.1.1
+version:         1.6.1.2
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -43,7 +43,7 @@
                  , data-default
                  , text
                  , transformers-base     >= 0.4     && < 0.5
-                 , lifted-base           >= 0.1     && < 0.2
+                 , lifted-base           >= 0.1
                  , socks                 >= 0.4     && < 0.5
                  , time
                  , cookie                >= 0.4     && < 0.5
@@ -112,7 +112,7 @@
                  , http-types
                  , cookie
                  , regex-compat
-                 , network-conduit
+                 , network-conduit >= 0.6
                  , resourcet
                  , void
                  , deepseq
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -15,8 +15,8 @@
 import Control.Exception.Lifted (try, SomeException)
 import Network.HTTP.Conduit.ConnInfo
 import CookieTest (cookieTest)
-import Data.Conduit.Network (runTCPServer, ServerSettings (..), HostPreference (HostAny))
-import Data.Conduit (($$))
+import Data.Conduit.Network (runTCPServer, serverSettings, HostPreference (HostAny), appSink, appSource)
+import Data.Conduit (($$), yield)
 import Control.Monad.Trans.Resource (register)
 import Control.Monad.IO.Class (liftIO)
 import Data.ByteString.UTF8 (fromString)
@@ -252,17 +252,28 @@
                     [ ["hello", "world"]
                     , replicate 500 "foo\003\n\r"
                     ]
+    describe "no status message" $ do
+        it "works" $ do
+            tid <- forkIO noStatusMessage
+            threadDelay 1000000
+            withManager $ \manager -> do
+                _ <- register $ killThread tid
+                req <- parseUrl "http://127.0.0.1:3008"
+                res <- httpLbs req manager
+                liftIO $ do
+                    Network.HTTP.Conduit.responseStatus res `shouldBe` status200
+                    responseBody res `shouldBe` "foo"
 
 overLongHeaders :: IO ()
-overLongHeaders = runTCPServer (ServerSettings 3004 HostAny) $ \_ sink ->
-    src $$ sink
+overLongHeaders = runTCPServer (serverSettings 3004 HostAny) $ \app ->
+    src $$ appSink app
   where
     src = sourceList $ "HTTP/1.0 200 OK\r\nfoo: " : repeat "bar"
 
 notOverLongHeaders :: IO ()
-notOverLongHeaders = runTCPServer (ServerSettings 3005 HostAny) $ \src' sink -> do
-    src' $$ CL.drop 1
-    src $$ sink
+notOverLongHeaders = runTCPServer (serverSettings 3005 HostAny) $ \app -> do
+    appSource app  $$ CL.drop 1
+    src $$ appSink app
   where
     src = sourceList $ [S.concat $ "HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\nContent-Length: 16384\r\n\r\n" : ( take 16384 $ repeat "x")]
 
@@ -304,3 +315,9 @@
 echo = run 3007 $ \req -> do
     bss <- Network.Wai.requestBody req $$ CL.consume
     return $ responseLBS status200 [] $ L.fromChunks bss
+
+noStatusMessage :: IO ()
+noStatusMessage = runTCPServer (serverSettings 3008 HostAny) $ \app ->
+    src $$ appSink app
+  where
+    src = yield "HTTP/1.0 200\r\nContent-Length: 3\r\n\r\nfoo: barbazbin"
