anchor.diff:      {ok, TxKey} = sip_transaction:start_client_tx(self(), Top, Request2),
   
       % Update ref to request info & txkey to ref mappings
  -    Requests = lists:keystore(Ref, 1, State#state.requests, {Ref, ReqInfo2}),
  -    Transactions = lists:keystore(TxKey, 1, State#state.transactions, {TxKey, Ref}),
  -    State2 = State#state{requests = Requests, transactions = Transactions},
  +    Requests = lists:keystore(Ref, 1, State#state.requests, {Ref, TxKey, ReqInfo2}),
  +    State2 = State#state{requests = Requests},
   
       % stop processing
       error_m:fail({processed, State2}).
  
positive.code:     % go through Contact: headers and add URIs to our current redirect set
      NewTargetSet = sip_message:foldl_headers('contact', CollectFun, ReqInfo#req_info.target_set, Response),
      ReqInfo#req_info{target_set = NewTargetSet, destinations = []}.
  
negative.code:     {ok, State2}.
  
  do_response(#sip_response{status = Status} = Response, TxKey, State) ->
      % search by value (transaction key), it is unique by design
      {Ref, TxKey, ReqInfo} = lists:keyfind(TxKey, 2, State#state.requests),
      Result = do([error_m ||
                   S1 <- validate_vias(Response, State),
                   handle_response(ReqInfo, Response, S1)]),
  