anchor.diff:  	    %% A and B is either both in the preferred list, or both NOT in the preferred list.
   	    %% Pick using numerical sort of response codes.
   	    if
  -		A#response.status =< B#response.status ->
  +		A#sp_response.status =< B#sp_response.status ->
   		    true;
   		true ->
   		    false
  -	    end;	    
  +	    end;
   	Apref == true ->
   	    true;
   	true ->
  
positive.code: %% Descrip.: Start the processing, currently forking (in parallell or
  %%           sequentially) of Request according to Actions.
  %% Returns : ok              |
  						%            {error, Reason}
  %%           Reason = string()
  %% Note    : Actions is a set of actions to perform. Currently
  %%           supported actions are a list of 'call' and 'wait'. You
  %%           can mix calls and waits freely.
  %%--------------------------------------------------------------------
  start(BranchBase, Parent, Request, Actions, Timeout) when is_record(Request, request) ->
      Res = case catch siprequest:check_proxy_request(Request) of
  	      {ok, NewHeader, ApproxMsgSize} ->
  		  %% sipproxy should never be invoked on a request that contains
  		  %% a Route header, but we check just in case someone screws up.
  		  case keylist:fetch('route', Request#request.header) of
  		      [] ->
  			  State = #state{parent=Parent, branchbase=BranchBase, request=Request#request{header=NewHeader}, 
  					 actions=Actions, timeout=Timeout, targets=targetlist:empty(),
  					 mystate=calling, approx_msgsize=ApproxMsgSize,
  					 endtime=util:timestamp() + Timeout, final_response_sent=false},
  			  fork(State),
  			  ok;
  		      _ ->
  			  logger:log(error, "sipproxy: Can't fork request with Route header"),
  			  InternalError = {500, "Server Internal Error"},
  			  util:safe_signal("sipproxy :", Parent, {sipproxy_all_terminated, self(), InternalError}),
  			  {error, "Request with Route header could not be forked"}
  		  end;
  	      {siperror, Status, Reason} ->
  
negative.code: %%
  %% AllTerminated == true, final_response_sent == false, mystate == calling or cancelled
  %%
  report_upstreams(true, #state{final_response_sent=false, mystate=MyState}=State)
    when MyState == calling; MyState == cancelled ->
      Responses = targetlist:get_responses(State#state.targets),
      logger:log(debug, "sipproxy: All targets are terminated, evaluating responses :~n~p",
  