anchor.diff:          _nextResponseCompleter = new Completer();
           // Listen for response.
           _nextResponseCompleter.future
  -            .whenComplete(() {
  -               _nextResponseCompleter = null;
  -             })
               .then((incoming) {
                 incoming.dataDone.then((_) {
                   if (incoming.headers.persistentConnection &&
                       request.persistentConnection) {
  -                  _subscription.resume();
                     // Return connection, now we are done.
                     _httpClient._returnConnection(this);
  +                  _subscription.resume();
                   } else {
                     destroy();
                   }
  
positive.code:               destroy();
                request._onError(error);
              });
  
          return _socket.addStream(stream)
              .catchError((e) {
  
negative.code:           _subscription.pause();
            // We assume the response is not here, until we have send the request.
            assert(_nextResponseCompleter != null);
            var completer = _nextResponseCompleter;
            _nextResponseCompleter = null;
            completer.complete(incoming);
          },
          onError: (error) {
            if (_nextResponseCompleter != null) {
              _nextResponseCompleter.completeError(error);
              _nextResponseCompleter = null;
            }
          },
          onDone: () {
  