             sent in
             self.bodyBytes.removeAll()
             guard bodyCount == sent else {
-                return callback(false)
+                self.completedCallback = nil
+                self.connection.close()
+                return
             }
             Threading.dispatch {
                 callback(true)

        }
        responseString.append("\r\n")
        connection.write(string: responseString) {
            _ in
            self.push(callback: callback)
        }
    }

    func pushHeaders(callback: (Bool) -> ()) {
        wroteHeaders = true
        if isKeepAlive {
            addHeader(.connection, value: "Keep-Alive")
        }
        if isStreaming {
            addHeader(.transferEncoding, value: "chunked")
