diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 2.3.6
+
+* Add `httpSource` to `Network.HTTP.Client.Conduit` [#390](https://github.com/snoyberg/http-client/pull/390).
+
 ## 2.3.5
 
 * Adds `addToRequestQueryString` helper function
diff --git a/Network/HTTP/Client/Conduit.hs b/Network/HTTP/Client/Conduit.hs
--- a/Network/HTTP/Client/Conduit.hs
+++ b/Network/HTTP/Client/Conduit.hs
@@ -15,6 +15,7 @@
     , responseOpen
     , responseClose
     , acquireResponse
+    , httpSource
       -- * Manager helpers
     , defaultManagerSettings
     , newManager
@@ -31,13 +32,14 @@
 
 import           Control.Monad                (unless)
 import           Control.Monad.IO.Unlift      (MonadIO, liftIO, MonadUnliftIO, withRunInIO)
-import           Control.Monad.Reader         (MonadReader (..))
+import           Control.Monad.Reader         (MonadReader (..), runReaderT)
+import           Control.Monad.Trans.Resource (MonadResource)
 import           Data.Acquire                 (Acquire, mkAcquire, with)
 import           Data.ByteString              (ByteString)
 import qualified Data.ByteString              as S
 import qualified Data.ByteString.Lazy         as L
-import           Data.Conduit                 (ConduitM, ($$+),
-                                               await, yield, ($$++))
+import           Data.Conduit                 (ConduitM, ($$+), ($$++),
+                                               await, yield, bracketP)
 import           Data.Int                     (Int64)
 import           Data.IORef                   (newIORef, readIORef, writeIORef)
 import           Network.HTTP.Client          hiding (closeManager,
@@ -172,3 +174,19 @@
     env <- ask
     let man = getHttpManager env
     liftIO $ H.httpNoBody req man
+
+-- | Same as 'Network.HTTP.Simple.httpSource', but uses 'Manager'
+--   from Reader environment instead of the global one.
+--
+--   Since 2.3.6
+httpSource
+  :: (MonadResource m, MonadIO n, MonadReader env m, HasHttpManager env)
+  => Request
+  -> (Response (ConduitM () ByteString n ()) -> ConduitM () r m ())
+  -> ConduitM () r m ()
+httpSource request withRes = do
+  env <- ask
+  bracketP
+    (runReaderT (responseOpen request) env)
+    responseClose
+    withRes
diff --git a/Network/HTTP/Conduit.hs b/Network/HTTP/Conduit.hs
--- a/Network/HTTP/Conduit.hs
+++ b/Network/HTTP/Conduit.hs
@@ -158,6 +158,7 @@
     , rawBody
     , decompress
     , redirectCount
+    , shouldStripHeaderOnRedirect
     , checkResponse
     , responseTimeout
     , cookieJar
diff --git a/Network/HTTP/Simple.hs b/Network/HTTP/Simple.hs
--- a/Network/HTTP/Simple.hs
+++ b/Network/HTTP/Simple.hs
@@ -95,6 +95,7 @@
 import qualified Data.Aeson as A
 import qualified Data.Traversable as T
 import Control.Exception (throw, throwIO, Exception)
+import Data.Monoid
 import Data.Typeable (Typeable)
 import qualified Data.Conduit as C
 import Data.Conduit (runConduit, (.|), ConduitM)
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:         2.3.5
+version:         2.3.6
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
