diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.3.0
+
+* Support http-client 0.5
+
 ## 0.2.4.1
 
 * Cabal description fix
diff --git a/Network/HTTP/Client/TLS.hs b/Network/HTTP/Client/TLS.hs
--- a/Network/HTTP/Client/TLS.hs
+++ b/Network/HTTP/Client/TLS.hs
@@ -10,13 +10,11 @@
       -- * Global manager
     , getGlobalManager
     , setGlobalManager
-      -- * Internal
-    , getTlsConnection
     ) where
 
 import Data.Default.Class
-import Network.HTTP.Client
-import Network.HTTP.Client.Internal
+import Network.HTTP.Client hiding (host, port)
+import Network.HTTP.Client.Internal hiding (host, port)
 import Control.Exception
 import qualified Network.Connection as NC
 import Network.Socket (HostAddress)
@@ -41,27 +39,18 @@
         case () of
             ()
                 | ((fromException e)::(Maybe TLS.TLSError))==Just TLS.Error_EOF -> True
-                | otherwise -> case fromException e of
-                    Just (_ :: IOException) -> True
-                    _ ->
-                        case fromException e of
-                            -- Note: Some servers will timeout connections by accepting
-                            -- the incoming packets for the new request, but closing
-                            -- the connection as soon as we try to read. To make sure
-                            -- we open a new connection under these circumstances, we
-                            -- check for the NoResponseDataReceived exception.
-                            Just NoResponseDataReceived -> True
-                            Just IncompleteHeaders -> True
-                            _ -> False
-    , managerWrapIOException = 
+                | otherwise -> managerRetryableException defaultManagerSettings e
+    , managerWrapException = \req ->
         let wrapper se =
                 case fromException se of
-                    Just e -> toException $ InternalIOException e
+                    Just (_ :: IOException) -> se'
                     Nothing -> case fromException se of
-                      Just TLS.Terminated{} -> toException $ TlsException se
-                      Just TLS.HandshakeFailed{} -> toException $ TlsException se
-                      Just TLS.ConnectionNotEstablished -> toException $ TlsException se
+                      Just TLS.Terminated{} -> se'
+                      Just TLS.HandshakeFailed{} -> se'
+                      Just TLS.ConnectionNotEstablished -> se'
                       _ -> se
+              where
+                se' = toException $ HttpExceptionRequest req $ InternalException se
          in handle $ throwIO . wrapper
     }
 
diff --git a/http-client-tls.cabal b/http-client-tls.cabal
--- a/http-client-tls.cabal
+++ b/http-client-tls.cabal
@@ -1,5 +1,5 @@
 name:                http-client-tls
-version:             0.2.4.1
+version:             0.3.0
 synopsis:            http-client backend using the connection package and tls library
 description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <https://www.stackage.org/package/http-client-tls>.
 homepage:            https://github.com/snoyberg/http-client
@@ -18,7 +18,7 @@
   other-extensions:    ScopedTypeVariables
   build-depends:       base >= 4 && < 5
                      , data-default-class
-                     , http-client >= 0.3.5
+                     , http-client >= 0.5.0
                      , connection >= 0.2.2
                      , network
                      , tls >= 1.2
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -2,14 +2,11 @@
 import Test.Hspec
 import Network.HTTP.Client
 import Network.HTTP.Client.TLS
-import Network.HTTP.Client.Internal
 import Network.HTTP.Types
 
 main :: IO ()
 main = hspec $ do
     it "make a TLS connection" $ do
         manager <- newManager tlsManagerSettings
-        withResponse "https://httpbin.org/status/418"
-            { checkStatus = \_ _ _ -> Nothing
-            } manager $ \res -> do
+        withResponse "https://httpbin.org/status/418" manager $ \res ->
             responseStatus res `shouldBe` status418
