diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,11 @@
 
 ## Unreleased changes
 
+## v0.1.0.2
+
+- performance improvement to parsing statuses
+- performance improvement to generating content-length headers
+
 ## v0.1.0.1
 - compact transfers for requests with no body or when chunking has empty bytestrings (see https://github.com/lucasdicioccio/servant-http2-client/issues/1 and https://github.com/yesodweb/wai/issues/717)
 
diff --git a/servant-http2-client.cabal b/servant-http2-client.cabal
--- a/servant-http2-client.cabal
+++ b/servant-http2-client.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: e352f7dda8407f7f694c6418b746407bfd6e634a996cd13a2dba4fdf7164dcc0
+-- hash: 6b01395f8a2a1378dbcf88243a058468c5b3e6464cf2bd933080fb9ee96e9d77
 
 name:           servant-http2-client
-version:        0.1.0.1
+version:        0.1.0.2
 synopsis:       Generate HTTP2 clients from Servant API descriptions.
 description:    Please see the README on GitHub at <https://github.com/lucasdicioccio/servant-http2-client#readme>
 category:       Web
diff --git a/src/Network/HTTP2/Client/Servant.hs b/src/Network/HTTP2/Client/Servant.hs
--- a/src/Network/HTTP2/Client/Servant.hs
+++ b/src/Network/HTTP2/Client/Servant.hs
@@ -23,6 +23,7 @@
 import           Control.Monad.Error.Class   (MonadError (..))
 import           Control.Monad.Reader (MonadReader, ReaderT, ask, runReaderT)
 import           Data.Binary.Builder (toLazyByteString)
+import           Data.ByteString.Builder (intDec, int64Dec)
 import           Data.ByteString.Char8 (ByteString)
 import qualified Data.ByteString.Char8 as ByteString
 import           Data.ByteString.Lazy (fromStrict, toStrict, toChunks)
@@ -38,7 +39,6 @@
 import           Network.HTTP.Types.Status (Status(..))
 import           Network.HTTP.Types.Version (http20)
 import qualified Data.CaseInsensitive as CI
-import           Text.Read (readMaybe)
 
 
 import           Network.HTTP2.Client
@@ -107,7 +107,7 @@
             (RequestBodyBS bs)  -> pure $
                 (Just $ onlySegment bs,
                     [ ("Content-Type", renderHeader ct)
-                    , ("Content-Length", ByteString.pack $ show $ ByteString.length bs)
+                    , ("Content-Length", toStrict $ toLazyByteString $ intDec $ ByteString.length bs)
                     ])
             (RequestBodyLBS lbs) -> pure $
                 (Just $ multiSegments $ toChunks lbs,
@@ -117,12 +117,12 @@
                 let lbs = toLazyByteString builder in pure $
                 (Just $ multiSegments $ toChunks lbs,
                     [ ("Content-Type", renderHeader ct)
-                    , ("Content-Length", ByteString.pack $ show n)
+                    , ("Content-Length", toStrict $ toLazyByteString $ int64Dec n)
                     ])
             (RequestBodyStream n act) -> pure $
                 (Just act,
                     [ ("Content-Type", renderHeader ct)
-                    , ("Content-Length", ByteString.pack $ show n)
+                    , ("Content-Length", toStrict $ toLazyByteString $ int64Dec n)
                     ])
             (RequestBodyStreamChunked act) -> pure $
                 (Just act,
@@ -143,7 +143,7 @@
         , (":scheme", "https")
         , (":path", toStrict $ toLazyByteString $ requestPath req)
         , (":authority", authority)
-        , ("Accept", ByteString.intercalate "," $ toList $ fmap renderHeader $ requestAccept req)
+        , ("Accept", ByteString.intercalate "," $ fmap renderHeader $ toList $ requestAccept req)
         , ("User-Agent", "servant-http2-client/dev")
         ]
     reqHeaders = [(CI.original h, hv) | (h,hv) <- toList (requestHeaders req)]
@@ -192,8 +192,9 @@
              http20
              (fromStrict body)
 
+{-# INLINEABLE lookupStatus #-}
 lookupStatus :: HeaderList -> Maybe Int
-lookupStatus = lookup ":status" >=> readMaybe . ByteString.unpack
+lookupStatus = lookup ":status" >=> fmap fst . ByteString.readInt
 
 replenishFlowControls
   :: IncomingFlowControl -> IncomingFlowControl -> Int -> IO ()
