diff --git a/Network/HTTP/Conduit/Downloader.hs b/Network/HTTP/Conduit/Downloader.hs
--- a/Network/HTTP/Conduit/Downloader.hs
+++ b/Network/HTTP/Conduit/Downloader.hs
@@ -510,7 +510,9 @@
               , t <= curTime = -- use only valid timestamps
               redownloadOpts (("If-Modified-Since: " ++ B.unpack time) : acc) xs
           redownloadOpts acc (_:xs) = redownloadOpts acc xs
-          relUri r =
+          fixNonAscii =
+              escapeURIString (\ c -> ord c <= 0x7f && c `notElem` " []{}|")
+          relUri (fixNonAscii -> r) =
               fromMaybe r $
               fmap (($ "") . uriToString id) $
               liftM2 relativeTo
diff --git a/http-conduit-downloader.cabal b/http-conduit-downloader.cabal
--- a/http-conduit-downloader.cabal
+++ b/http-conduit-downloader.cabal
@@ -1,6 +1,6 @@
 cabal-version:  >= 1.6
 name:           http-conduit-downloader
-version:        1.0.17
+version:        1.0.18
 author:         Vladimir Shabanov <vshabanoff@gmail.com>
 maintainer:     Vladimir Shabanov <vshabanoff@gmail.com>
 homepage:       https://github.com/bazqux/http-conduit-downloader
