anchor.diff:      case count_via(Msg) of
           1 ->
               % handle response from transaction layer
  -            TxData = dict:fetch(TxKey, State#state.transactions),
  -            Response = Mod:handle_response(Msg, TxData#tx_data.user_data, ModState),
  +            ReqInfo = dict:fetch(TxKey, State#state.transactions),
  +            Response = Mod:handle_response(Msg, ReqInfo#req_info.user_data, ModState),
               wrap_response(Response, State);
           _Other ->
               % discard response
  
positive.code: 
  %% @private
  -spec handle_cast(_, #state{}) -> any().
  handle_cast({send, UserData, Destinations, Request}, State) ->
      TxData = #tx_data{request = Request, user_data = UserData, fallback = Destinations},
      send_internal(TxData, State);
  handle_cast(Req, #state{mod = Mod, mod_state = ModState} = State) ->
      Response = Mod:handle_cast(Req, ModState),
      wrap_response(Response, State).
  
negative.code:     Destinations = sip_resolve:client_resolve(URI2),
  
      % Dispatch asynchronously
      ReqInfo = #req_info{request = Request, user_data = UserData, destinations = Destinations},
      gen_server:cast(self(), {send, ReqInfo}),
      ok.
  
  %%-----------------------------------------------------------------
  