When I send an HTTP GET request that contains a minus sign in the
Range: header, the response I get back is 200, but has invalid
headers. If I modify the request to remove just the minus sign, I get
a proper Response.

The problem is that without the minus sign in the Range: header,
applications like GetRight and Firefox are not able to resume file
transfers. Here's what I mean. All that is changed is the Range:
header. In both cases the transfer starts over from 0.

Why does this header cause Squid to not return any headers to the
request?
(NetCache is a Linux/BSD box running Squid and a few other programs.)

+++GET 3+++
GET /getright52beta3.exe HTTP/1.1
Host: www.get-right.com
Range: bytes=327884-
Accept: */*
Connection: keep-alive
+++CLOSE 3+++
+++RESP 3+++
HTTP/1.1 200 (No headers)
Server: Unknown, missing HTTP headers
+++CLOSE 3+++

+++GET 4+++
GET /getright52beta3.exe HTTP/1.1
Host: www.get-right.com
Range: bytes=327884
Accept: */*
Connection: keep-alive
+++CLOSE 4+++
+++RESP 4+++
HTTP/1.1 200 OK
Age: 47383
Date: Tue, 17 Aug 2004 00:31:42 GMT
Content-Length: 3091086
Content-Type: application/octet-stream
Server: Apache/1.3.22 (Unix) (Red-Hat/Linux) mod_jk/1.2.0
mod_perl/1.24_01 PHP/4.1.1 FrontPage/5.0.2 mod_ssl/2.8.5
OpenSSL/0.9.6b
Last-Modified: Wed, 28 Jul 2004 07:27:56 GMT
Via: 1.1 Adzila2 (NetCache NetApp/5.5D6)
+++CLOSE 4+++