diff --git a/src/pkg/http/response.go b/src/pkg/http/response.go
index 7ac7fb8..1f725ec 100644
--- a/src/pkg/http/response.go
+++ b/src/pkg/http/response.go
@@ -224,9 +224,12 @@
 	sort.SortStrings(keys)
 	for _, k := range keys {
 		for _, v := range h[k] {
-			v = strings.TrimSpace(v)
 			v = strings.Replace(v, "\n", " ", -1)
 			v = strings.Replace(v, "\r", " ", -1)
+			v = strings.TrimSpace(v)
+			if v == "" {
+				continue
+			}
 			if _, err := fmt.Fprintf(w, "%s: %s\r\n", k, v); err != nil {
 				return err
 			}
diff --git a/src/pkg/http/serve_test.go b/src/pkg/http/serve_test.go
index 482acfd..6b881a2 100644
--- a/src/pkg/http/serve_test.go
+++ b/src/pkg/http/serve_test.go
@@ -15,6 +15,7 @@
 	"io/ioutil"
 	"os"
 	"net"
+	"reflect"
 	"strings"
 	"testing"
 	"time"
@@ -427,3 +428,25 @@
 		t.Fatalf("Expected local addr; got %q", ip)
 	}
 }
+
+func TestChunkedResponseHeaders(t *testing.T) {
+	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
+		w.Header().Set("Content-Length", "intentional gibberish") // we check that this is deleted
+		fmt.Fprintf(w, "I am a chunked response.")
+	}))
+	defer ts.Close()
+
+	res, _, err := Get(ts.URL)
+	if err != nil {
+		t.Fatalf("Get error: %v", err)
+	}
+	if g, e := res.ContentLength, int64(-1); g != e {
+		t.Errorf("expected ContentLength of %d; got %d", e, g)
+	}
+	if g, e := res.TransferEncoding, []string{"chunked"}; !reflect.DeepEqual(g, e) {
+		t.Errorf("expected TransferEncoding of %v; got %v", e, g)
+	}
+	if _, haveCL := res.Header["Content-Length"]; haveCL {
+		t.Errorf("Unexpected Content-Length")
+	}
+}
diff --git a/src/pkg/http/server.go b/src/pkg/http/server.go
index 6a7c74e..91caebc 100644
--- a/src/pkg/http/server.go
+++ b/src/pkg/http/server.go
@@ -236,7 +236,7 @@
 			hasCL = true
 		} else {
 			log.Printf("http: invalid Content-Length of %q sent", clenStr)
-			w.header.Set("Content-Length", "")
+			w.header.Del("Content-Length")
 		}
 	}
 
@@ -247,7 +247,7 @@
 		// For now just ignore the Content-Length.
 		log.Printf("http: WriteHeader called with both Transfer-Encoding of %q and a Content-Length of %d",
 			te, contentLength)
-		w.header.Set("Content-Length", "")
+		w.header.Del("Content-Length")
 		hasCL = false
 	}
 
@@ -286,7 +286,7 @@
 
 	// Cannot use Content-Length with non-identity Transfer-Encoding.
 	if w.chunking {
-		w.header.Set("Content-Length", "")
+		w.header.Del("Content-Length")
 	}
 	if !w.req.ProtoAtLeast(1, 0) {
 		return
