defer pr.Close()
        defer pw.Close()
        dr := &delegateReader{c: make(chan io.Reader)}
+
+       t := &http.Transport{
+               Dial: func(net, addr string) (net.Conn, error) {
+                       return &dumpConn{io.MultiWriter(&buf, pw), dr}, nil
+               },
+       }
+       defer t.CloseIdleConnections()
+
        // Wait for the request before replying with a dummy response:
        go func() {
                req, err := http.ReadRequest(bufio.NewReader(pr))
                        io.Copy(ioutil.Discard, req.Body)
                        req.Body.Close()
                }
-               dr.c <- strings.NewReader("HTTP/1.1 204 No Content\r\n\r\n")
+               dr.c <- strings.NewReader("HTTP/1.1 204 No Content\r\nConnection: close\r\n\r\n")
        }()
 
-       t := &http.Transport{
-               DisableKeepAlives: true,
-               Dial: func(net, addr string) (net.Conn, error) {
-                       return &dumpConn{io.MultiWriter(&buf, pw), dr}, nil
-               },
-       }
-
        _, err := t.RoundTrip(reqSend)
 
        req.Body = save