Index: http.c
===================================================================
RCS file: /cvsroot/curl/lib/http.c,v
retrieving revision 1.43
diff -u -r1.43 http.c
--- http.c	2001/01/26 15:49:39	1.43
+++ http.c	2001/01/27 17:07:17
@@ -429,8 +429,21 @@
       }
     }
   }
-  if((data->bits.set_range) && !checkheaders(data, "Range:")) {
-    data->ptr_rangeline = aprintf("Range: bytes=%s\015\012", data->range);
+  if(data->bits.set_range) {
+    /*
+     * A range is selected. We use different headers whether we're downloading
+     * or uploading and we always let customized headers override our internal
+     * ones if any such are specified.
+     */
+    if((data->httpreq == HTTPREQ_GET) &&
+       !checkheaders(data, "Range:")) {
+      data->ptr_rangeline = aprintf("Range: bytes=%s\015\012", data->range);
+    }
+    else if((data->httpreq != HTTPREQ_GET) &&
+            !checkheaders(data, "Content-Range:")) {
+      data->ptr_rangeline = aprintf("Content-Range: bytes=%s\015\012",
+                                    data->range);
+    }
   }
   if((data->bits.http_set_referer) && !checkheaders(data, "Referer:")) {
     data->ptr_ref = aprintf("Referer: %s\015\012", data->referer);
