anchor.diff:      {ok, NewParser} = exml_stream:reset_parser(Parser),
       {noreply, State#state{parser = NewParser}}.
   
  +%% Handle async HTTP request replies.
  +handle_info({http_reply, {{_StatusCode, _Reason}, _Hdrs, RespBody}}, State) ->
  +    NewState = handle_data(RespBody, State),
  +    {noreply, NewState};
   handle_info(_, State) ->
       {noreply, State}.
   
  
positive.code: send0(#transport{socket = {Host, Port, Path}}, Elem0, State) ->
      Headers = [{"Content-Type", "text/xml; charset=utf-8"}],
      Elem = wrap_elem(Elem0, State),
      {ok, {{_StatusCode, _Reason}, _Hdrs, RespBody}} =
          lhttpc:request(Host, Port, false, Path, 'POST',
              Headers, exml:to_iolist(Elem), infinity, []),
      handle_data(RespBody, State).
  
  handle_data(Data, #state{owner = Owner} = State) ->
      {ok, Body} = exml:parse(Data),
      Stanzas = unwrap_elem(Body),
      lists:foreach(fun(Stanza) ->
          Owner ! {stanza, transport(State), Stanza}
      end, Stanzas),
      case [StrEnd || #xmlstreamend{} = StrEnd <- Stanzas] of
          [] -> ok;
          _ -> gen_server:cast(self(), stop)
      end,
      Body.
  
  transport(#state{url = Url}) ->
      #transport{module = ?MODULE,
  
negative.code:     {stop, normal, ok, State}.
  handle_cast(stop, State) ->
      {stop, normal, State};
  handle_cast({send, Transport, #xmlstreamstart{} = Elem}, State) ->
      send0(Transport, Elem, State),
      {noreply, State};
  handle_cast({send, Transport, Elem}, State) ->
      send0(Transport, Elem, State),
      {noreply, State#state{rid=State#state.rid+1}};
  