diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,8 @@
+## 0.4.19
+
+* Move HasHttpManager from http-conduit to http-client [#147](https://github.com/snoyberg/http-client/pull/147)
+* Chunked request bodies use less TCP packets [#149](https://github.com/snoyberg/http-client/issues/149)
+
 ## 0.4.18
 
 * Deprecate closeManager [#136](https://github.com/snoyberg/http-client/issues/136) [#137](https://github.com/snoyberg/http-client/issues/137)
diff --git a/Network/HTTP/Client.hs b/Network/HTTP/Client.hs
--- a/Network/HTTP/Client.hs
+++ b/Network/HTTP/Client.hs
@@ -87,6 +87,7 @@
     , newManager
     , closeManager
     , withManager
+    , HasHttpManager(..)
       -- ** Connection manager settings
     , ManagerSettings
     , defaultManagerSettings
diff --git a/Network/HTTP/Client/Request.hs b/Network/HTTP/Client/Request.hs
--- a/Network/HTTP/Client/Request.hs
+++ b/Network/HTTP/Client/Request.hs
@@ -373,12 +373,18 @@
       where
         loop stream = do
             bs <- stream
-            when isChunked $
-                connectionWrite $ S8.pack $ showHex (S.length bs) (if S.null bs then "\r\n\r\n" else "\r\n")
-            unless (S.null bs) $ do
-                connectionWrite bs
-                when isChunked $ connectionWrite "\r\n"
-                loop stream
+            if S.null bs
+                then when isChunked $ connectionWrite "0\r\n\r\n"
+                else do
+                    connectionWrite $
+                        if isChunked
+                            then S.concat
+                                [ S8.pack $ showHex (S.length bs) "\r\n"
+                                , bs
+                                , "\r\n"
+                                ]
+                            else bs
+                    loop stream
 
 
     hh
diff --git a/Network/HTTP/Client/Types.hs b/Network/HTTP/Client/Types.hs
--- a/Network/HTTP/Client/Types.hs
+++ b/Network/HTTP/Client/Types.hs
@@ -22,6 +22,7 @@
     , Response (..)
     , ResponseClose (..)
     , Manager (..)
+    , HasHttpManager (..)
     , ConnsMap (..)
     , ManagerSettings (..)
     , NonEmptyList (..)
@@ -594,6 +595,11 @@
     -- ^ See 'managerProxy'
     }
     deriving T.Typeable
+
+class HasHttpManager a where
+    getHttpManager :: a -> Manager
+instance HasHttpManager Manager where
+    getHttpManager = id
 
 data ConnsMap
     = ManagerClosed
diff --git a/http-client.cabal b/http-client.cabal
--- a/http-client.cabal
+++ b/http-client.cabal
@@ -1,5 +1,5 @@
 name:                http-client
-version:             0.4.18.1
+version:             0.4.19
 synopsis:            An HTTP client engine, intended as a base layer for more user-friendly packages.
 description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/http-client>.
 homepage:            https://github.com/snoyberg/http-client
diff --git a/test-nonet/Network/HTTP/Client/RequestSpec.hs b/test-nonet/Network/HTTP/Client/RequestSpec.hs
--- a/test-nonet/Network/HTTP/Client/RequestSpec.hs
+++ b/test-nonet/Network/HTTP/Client/RequestSpec.hs
@@ -99,14 +99,14 @@
                , [nonChunked <> "\r\ndata"]
                , [nonChunked <> "\r\ndata"]
                , [nonChunked <> "\r\n", "", "data"]
-               , [chunked <> "\r\n", "", "4\r\n","data","\r\n","0\r\n\r\n"]
+               , [chunked <> "\r\n", "", "4\r\ndata\r\n","0\r\n\r\n"]
                ]
 
         out2 = [ (nonChunked <> "Expect: 100-continue\r\n\r\n", ["data"])
                , (nonChunked <> "Expect: 100-continue\r\n\r\n", ["data"])
                , (nonChunked <> "Expect: 100-continue\r\n\r\n", ["data"])
                , (nonChunked <> "Expect: 100-continue\r\n\r\n", ["data"])
-               , (chunked    <> "Expect: 100-continue\r\n\r\n", ["4\r\n","data","\r\n","0\r\n\r\n"])
+               , (chunked    <> "Expect: 100-continue\r\n\r\n", ["4\r\ndata\r\n","0\r\n\r\n"])
                ]
 
         nonChunked = "PUT /foo HTTP/1.1\r\nHost: localhost\r\nAccept-Encoding: gzip\r\nContent-Length: 4\r\n"
