diff --git a/Network/HTTP/Conduit/Request.hs b/Network/HTTP/Conduit/Request.hs
--- a/Network/HTTP/Conduit/Request.hs
+++ b/Network/HTTP/Conduit/Request.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP #-}
 module Network.HTTP.Conduit.Request
     ( Request (..)
     , RequestBody (..)
@@ -66,9 +67,13 @@
 -- it as per 'setUri'; if it is relative, merge it with the existing request.
 setUriRelative :: Failure HttpException m => Request m' -> URI -> m (Request m')
 setUriRelative req uri =
+#if MIN_VERSION_network(2,4,0)
+    setUri req $ uri `relativeTo` getUri req
+#else
     case uri `relativeTo` getUri req of
         Just uri' -> setUri req uri'
         Nothing   -> failure $ InvalidUrlException (show uri) "Invalid URL"
+#endif
 
 -- | Extract a 'URI' from the request.
 getUri :: Request m' -> URI
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:         1.6.0.3
+version:         1.6.0.4
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -55,7 +55,7 @@
         build-depends: network               >= 2.2.1   && < 2.2.3
                      , network-bytestring    >= 0.1.3   && < 0.1.4
     else
-        build-depends: network               >= 2.3     && < 2.4
+        build-depends: network               >= 2.3
     exposed-modules: Network.HTTP.Conduit
                      Network.HTTP.Conduit.Browser
                      Network.HTTP.Conduit.Internal
