diff --git a/DAV.cabal b/DAV.cabal
--- a/DAV.cabal
+++ b/DAV.cabal
@@ -1,5 +1,5 @@
 name:                DAV
-version:             1.3
+version:             1.3.1
 synopsis:            RFC 4918 WebDAV support
 description:
    This is a library for the Web Distributed Authoring and Versioning
@@ -93,4 +93,4 @@
 source-repository this
   type:     git
   location: git://anonscm.debian.org/users/clint/DAV.git
-  tag:      DAV/1.3
+  tag:      DAV/1.3.1
diff --git a/Network/Protocol/HTTP/DAV.hs b/Network/Protocol/HTTP/DAV.hs
--- a/Network/Protocol/HTTP/DAV.hs
+++ b/Network/Protocol/HTTP/DAV.hs
@@ -77,7 +77,12 @@
 
 import Data.Maybe (catMaybes, fromMaybe)
 
-import Network.HTTP.Client (RequestBody(..), httpLbs, parseUrl, applyBasicAuth, Request(..), Response(..), newManager, HttpException(..), BodyReader, withResponse, path)
+#if MIN_VERSION_http_client(0,5,0)
+import Network.HTTP.Client (defaultRequest, HttpExceptionContent(StatusCodeException), parseUrlThrow, responseTimeoutDefault, responseTimeoutMicro)
+#else
+import Network.HTTP.Client (parseUrl)
+#endif
+import Network.HTTP.Client (RequestBody(..), httpLbs, applyBasicAuth, Request(..), Response(..), newManager, HttpException(..), BodyReader, withResponse, path)
 import Network.HTTP.Client.TLS (tlsManagerSettings)
 import Network.HTTP.Types (hContentType, Method, Status, RequestHeaders, conflict409)
 
@@ -88,7 +93,11 @@
 import Data.CaseInsensitive (mk)
 
 instance Default DAVContext where
+#if MIN_VERSION_http_client(0,5,0)
+    def = DAVContext [] defaultRequest B.empty B.empty [] Nothing def Nothing "hDav-using application"
+#else
     def = DAVContext [] def B.empty B.empty [] Nothing def Nothing "hDav-using application"
+#endif
 
 newtype DAVT m a = DAVT { runDAVT :: ExceptT String (StateT DAVContext m) a }
     deriving (Alternative, Applicative, Functor, Monad, MonadBase b, MonadError String, MonadFix, MonadIO, MonadPlus, MonadState DAVContext)
@@ -114,7 +123,11 @@
 mkDAVContext :: MonadIO m => DAVURL -> m DAVContext
 mkDAVContext u = liftIO $ do
     mgr <- liftIO $ newManager tlsManagerSettings
+#if MIN_VERSION_http_client(0,5,0)
+    req <- liftIO $ parseUrlThrow u
+#else
     req <- liftIO $ parseUrl u
+#endif
     return $ def { _baseRequest = req, _httpManager = Just mgr }
 
 {-# DEPRECATED closeDAVContext "deprecated because http-client deprecated closeManager" #-}
@@ -137,7 +150,11 @@
 setUserAgent ua = userAgent .= ua
 
 setResponseTimeout :: MonadIO m => Maybe Int -> DAVT m ()
+#if MIN_VERSION_http_client(0,5,0)
+setResponseTimeout rt = baseRequest %= \x -> x { responseTimeout = maybe responseTimeoutDefault responseTimeoutMicro rt }
+#else
 setResponseTimeout rt = baseRequest %= \x -> x { responseTimeout = rt }
+#endif
 
 mkDavRequest :: MonadIO m => Method -> RequestHeaders -> RequestBody -> DAVT m Request
 mkDavRequest meth addlhdrs rbody = do
@@ -160,8 +177,13 @@
       maybe (DAVT $ throwE "Can't perform request without manager") (liftIO . httpLbs req) (ctx ^. httpManager)
 
 matchStatusCodeException :: Status -> HttpException -> Maybe ()
+#if MIN_VERSION_http_client(0,5,0)
+matchStatusCodeException want (HttpExceptionRequest _ (StatusCodeException resp _))
+    | responseStatus resp == want = Just ()
+#else
 matchStatusCodeException want (StatusCodeException s _ _)
     | s == want = Just ()
+#endif
     | otherwise = Nothing
 matchStatusCodeException _ _ = Nothing
 
