diff --git a/src/http.c b/src/http.c
index 89d496b6..67b3686c 100644
--- a/src/http.c
+++ b/src/http.c
@@ -3817,7 +3817,7 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs,
       goto cleanup;
     }
   if ((contrange != 0 && contrange != hs->restval)
-      || (H_PARTIAL (statcode) && !contrange))
+      || (H_PARTIAL (statcode) && !contrange && hs->restval))
     {
       /* The Range request was somehow misunderstood by the server.
          Bail out.  */