anchor.diff:  	ThisTarget ->
   	    %% By matching on ClientPid here, we make sure we got the signal from
   	    %% the right process. XXX handle wrong pid more gracefully than crashing!
  -	    [ClientPid, ResponseToRequest] = targetlist:extract([pid, request], ThisTarget),
  +	    [ClientPid, ResponseToRequest, OldTState] = targetlist:extract([pid, request, state], ThisTarget),
   	    {RMethod, RURI} = {ResponseToRequest#request.method, ResponseToRequest#request.uri},
   	    NewTarget1 = targetlist:set_state(ThisTarget, NewTState),
   	    NewTarget2 = targetlist:set_endresult(NewTarget1, SPResponse),	% XXX only do this for final responses?
  
positive.code: %%           exit (hard) ourselves. This will cause the EXIT signal to
  %%           be propagated to our client branches, which will CANCEL
  %%           themselves if they are not already completed.
  %% Returns : does not return
  %%--------------------------------------------------------------------
  process_signal({'EXIT', Pid, Reason}, #state{parent=Parent}) when Pid == Parent ->
      %% Our parent has exited on us, exit straight away. The client branches are linked
      %% to this process, and will cancel themselves when we exit.
      %% XXX handle it differently if Reason is 'normal'?
      logger:log(error, "sipproxy: My parent (~p) just exited, so I will too. Parents reason : ~p",
  	       [Parent, Reason]),
      erlang:exit(sipproxy_parent_died);
  
  %%--------------------------------------------------------------------
  
negative.code: 	    NewTargets = try_next_destination(Status, ThisTarget, NewTargets1, State),
  	    logger:log(debug, "sipproxy: Received branch result '~p ~s' from ~p (request: ~s ~s). ",
  		       [Status, Reason, ClientPid, RMethod, sipurl:print(RURI)]),
  	    case (OldTState == NewTState) of
  		true ->
  		    ok;	%% No change, don't have to log verbose things
  		false ->
  		    logger:log(debug, "sipproxy: Extra debug: Target state changed from '~p' to '~p'.~n"
  			       "My Targets-list (response context) now contain :~n~p",
  			       [OldTState, NewTState, targetlist:debugfriendly(NewTargets)])
  	    end,
  	    NewState2 = State#state{targets=NewTargets},
  	    NewState3 = check_forward_immediately(ResponseToRequest, SPResponse, Branch, NewState2),
  	    NewState4 = cancel_pending_if_invite_2xx_or_6xx(RMethod, Status, NewState3),
  