diff --git a/Network/HTTP/Conduit/Browser.hs b/Network/HTTP/Conduit/Browser.hs
--- a/Network/HTTP/Conduit/Browser.hs
+++ b/Network/HTTP/Conduit/Browser.hs
@@ -188,12 +188,14 @@
   where
 
 import qualified Data.ByteString as BS
-import qualified Data.ByteString.Char8 as S8 (unpack)
+import qualified Data.ByteString.Char8 as S8
 import qualified Data.ByteString.Lazy as L
 import Control.Monad.State
 import Control.Exception
 import qualified Control.Exception.Lifted as LE
 import Data.Conduit
+import qualified Data.Conduit.Binary as CB
+import Data.Conduit.List (sinkNull)
 #if !MIN_VERSION_base(4,6,0)
 import Prelude hiding (catch)
 #endif
@@ -205,6 +207,7 @@
 import Data.CaseInsensitive (mk)
 import Data.ByteString.UTF8 (fromString)
 import Data.List (partition)
+import qualified Data.String as IsString (fromString)
 import Web.Cookie (parseSetCookie)
 import Data.Maybe (catMaybes, fromMaybe)
 import qualified Data.Map as Map
@@ -320,6 +323,21 @@
                 then do request''' <- case getRedirectedRequest request'' (responseHeaders response) code of
                             Just a -> return a
                             Nothing -> throw . UnparseableRedirect =<< (liftIO $ runResourceT $ lbsResponse response)
+                        -- Canibalised from Network.HTTP.Conduit, should be made visible there.
+                        -- Allow the original connection to return to the
+                        -- connection pool immediately by flushing the body.
+                        -- If the response body is too large, don't flush, but
+                        -- instead just close the connection.
+                        let maxFlush = 1024
+                            readMay bs =
+                                case S8.readInt bs of
+                                    Just (i, bs') | BS.null bs' -> Just i
+                                    _ -> Nothing
+                            sink =
+                                case lookup (IsString.fromString "content-length") (responseHeaders res) >>= readMay of
+                                    Just i | i > maxFlush -> return ()
+                                    _ -> CB.isolate maxFlush =$ sinkNull
+                        liftResourceT $ responseBody res $$+- sink
                         runRedirectionChain request''' (redirect_count - 1) (res:ress)
                 else return res
         applyAuthorities auths request' = case auths request' of
diff --git a/http-conduit-browser.cabal b/http-conduit-browser.cabal
--- a/http-conduit-browser.cabal
+++ b/http-conduit-browser.cabal
@@ -1,5 +1,5 @@
 name:            http-conduit-browser
-version:         1.7.0
+version:         1.7.1
 license:         BSD3
 license-file:    LICENSE
 author:          Myles C. Maxfield <myles.maxfield@gmail.com>
