Index: lib/transfer.c
===================================================================
RCS file: /cvsroot/curl/curl/lib/transfer.c,v
retrieving revision 1.249
diff -u -r1.249 transfer.c
--- lib/transfer.c	16 Sep 2004 21:28:38 -0000	1.249
+++ lib/transfer.c	6 Oct 2004 13:35:42 -0000
@@ -488,20 +488,12 @@
 
               if (conn->resume_from &&
                   !k->content_range &&
-                  (data->set.httpreq==HTTPREQ_GET)) {
-                if(k->httpcode == 416) {
-                  /* "Requested Range Not Satisfiable" */
-                  stop_reading = TRUE;
-                }
-                else {
-                  /* we wanted to resume a download, although the server
-                   * doesn't seem to support this and we did this with a GET
-                   * (if it wasn't a GET we did a POST or PUT resume) */
-                  failf (data, "HTTP server doesn't seem to support "
-                         "byte ranges. Cannot resume.");
-                  return CURLE_HTTP_RANGE_ERROR;
-                }
+                  (data->set.httpreq==HTTPREQ_GET) &&
+                  (k->httpcode == 416)) {
+                /* "Requested Range Not Satisfiable" */
+                stop_reading = TRUE;
               }
+
 #ifndef CURL_DISABLE_HTTP
               if(!stop_reading) {
                 /* Curl_http_auth_act() checks what authentication methods
@@ -956,6 +948,17 @@
                 k->ignorebody = TRUE;
                 infof(data, "Ignoring the response-body\n");
               }
+              if (conn->resume_from && !k->content_range &&
+                  (data->set.httpreq==HTTPREQ_GET) &&
+                  !k->ignorebody) {
+                /* we wanted to resume a download, although the server doesn't
+                 * seem to support this and we did this with a GET (if it
+                 * wasn't a GET we did a POST or PUT resume) */
+                failf (data, "HTTP server doesn't seem to support "
+                       "byte ranges. Cannot resume.");
+                return CURLE_HTTP_RANGE_ERROR;
+              }
+
               if(data->set.timecondition && !conn->range) {
                 /* A time condition has been set AND no ranges have been
                    requested. This seems to be what chapter 13.3.4 of
