anchor.diff:      LogTag = State#state.logtag,
       Reply = case State#state.report_to of
   		undefined ->
  -		    logger:log(debug, "~s: Server transaction adopted by ~p", [LogTag, Pid]),
  -		    {reply, {ok}, State#state{report_to=Pid}, ?TIMEOUT};
  +		    case State#state.cancelled of
  +			true ->
  +			    logger:log(debug, "~s: Pid ~p attempted to adopt cancelled server transaction",
  +				      [LogTag, Pid]),
  +			    {reply, {error, cancelled}, State, ?TIMEOUT};
  +			false ->
  +			    logger:log(debug, "~s: Server transaction adopted by ~p", [LogTag, Pid]),
  +			    {reply, {ok}, State#state{report_to=Pid}, ?TIMEOUT}
  +		    end;
   		_ ->
   		    {reply, {error, "Already set"}, State, ?TIMEOUT}
   	    end,
  
positive.code: %% gen_server callbacks
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
  
  -record(state, {branch, logtag, socket, report_to, request, response, sipmethod, sipstate, timerlist, mode, my_to_tag, logstr}).
  
  -define(TIMEOUT, 300 * 1000).
  
  
negative.code:     %% describes this request (METHOD URI [client=x, from=y, to=z])
      State = #state{branch=Branch, logtag=LogTag, socket=Socket, request=Request,
  		   sipmethod=Method, sipstate=trying, timerlist=siptimer:empty(),
  		   mode=Mode, my_to_tag=MyToTag},
      logger:log(debug, "~s: Server transaction: Started new server transaction for request ~s ~s.",
  	       [LogTag, Method, sipurl:print(URI)]),
      logger:log(normal, "~s: ~s", [LogTag, LogStr]),
  