anchor.diff:  	_ ->
   	    {error, "Transaction handler failure"}
       end.
  +
  +get_handler_for_request(Request) when record(Request, request) ->
  +    CompatRequest = {Request#request.method, Request#request.uri, Request#request.header, Request#request.body},
  +    get_handler_for_request(CompatRequest);
   
   get_handler_for_request(Request) ->
       case catch gen_server:call(transaction_layer, {get_server_transaction_handler, Request}, 2500) of
  
positive.code:     {Method, _, _, _} = Request,
      case transactionstatelist:get_client_transaction(Method, Branch, State#state.tstatelist) of
  	none ->
  	    {ok, CPid} = clienttransaction:start_link(Request, SocketIn, Dst, Branch, Timeout, Parent),
  	    NewL = transactionstatelist:add_client_transaction(Method, Branch, CPid, State#state.tstatelist),
  	    {reply, {ok, CPid}, State#state{tstatelist=NewL}, ?TIMEOUT};
  	_ ->
  	    logger:log(error, "Transaction layer: Can't start duplicate client transaction"),
  	    {reply, {error, "Transaction already exists"}, State, ?TIMEOUT}
  
negative.code: %%--------------------------------------------------------------------
  
  received_new_request({"ACK", URI, _, _}, Socket, LogStr, State) when record(State, state) ->
      AppModule = State#state.appmodule,
      logger:log(debug, "Transaction layer: Received ACK ~s that does not match any existing transaction, passing to core.",
  		[sipurl:print(URI)]),
      {reply, {pass_to_core, AppModule}, State, ?TIMEOUT};
  
  received_new_request({"CANCEL", URI, Header, Body}, Socket, LogStr, State) when record(State, state), State#state.mode == stateless ->
      AppModule = State#state.appmodule,
      logger:log(debug, "Transaction layer: Stateless received CANCEL ~s. Starting transaction but passing to core.",
  		[sipurl:print(URI)]),
      Request = {"CANCEL", URI, Header, Body},
      case servertransaction:start_link(Request, Socket, LogStr, AppModule, stateless) of
  	{ok, STPid} when pid(STPid) ->
  	    NewL = transactionstatelist:add_server_transaction(Request, STPid, State#state.tstatelist),
  	    {reply, {pass_to_core, AppModule}, State#state{tstatelist=NewL}, ?TIMEOUT};
  	E ->
  	    logger:log(error, "Transaction layer: Failed starting server transaction (~p) - ignoring request", [E]),
  	    {reply, {continue}, State, ?TIMEOUT}
      end;
  
  received_new_request(Request, Socket, LogStr, State) when record(State, state) ->
      AppModule = State#state.appmodule,
      logger:log(debug, "Transaction layer: No state for received request, starting new transaction"),
      case servertransaction:start_link(Request, Socket, LogStr, AppModule, State#state.mode) of
  	{ok, STPid} when pid(STPid) ->
  	    NewTStateList2 = transactionstatelist:add_server_transaction(Request, STPid, State#state.tstatelist),
  	    PassToCore = case Request of
  