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: %%          ignore               |
  %%          {stop, Reason}
  %%--------------------------------------------------------------------
  init([RequestFun, ResponseFun, Mode]) ->
      process_flag(trap_exit, true),
      TStateList = transactionstatelist:empty(),
      logger:log(debug, "Transaction layer started"),
      {ok, #state{requestfun=RequestFun, responsefun=ResponseFun, mode=Mode, tstatelist=TStateList}}.
  
  %%--------------------------------------------------------------------
  %% Function: handle_call/3
  
negative.code:     {Method, _, _, _} = Request,
      case transactionstatelist:get_client_transaction(Method, Branch, State#state.tstatelist) of
  	none ->
  	    case clienttransaction:start_link(Request, SocketIn, Dst, Branch, Timeout, Parent) of
  		{ok, CPid} ->
  		    RegBranch = sipheader:remove_loop_cookie(Branch),
  		    NewL = transactionstatelist:add_client_transaction(Method, RegBranch, CPid, State#state.tstatelist),
  		    {reply, {ok, CPid}, State#state{tstatelist=NewL}, ?TIMEOUT};
  		_ ->
  		    {reply, {error, "Failed starting client transaction"}, State, ?TIMEOUT}
  	    end;
  	_ ->
  	    logger:log(error, "Transaction layer: Can't start duplicate client transaction"),
  	    {reply, {error, "Transaction already exists"}, State, ?TIMEOUT}
  