anchor.diff:  extract([dstlist | T], Target, Res) when record(Target, target) ->
       extract(T, Target, lists:append(Res, [Target#target.dstlist]));
   extract([endresult | T], Target, Res) when record(Target, target) ->
  -    extract(T, Target, lists:append(Res, [Target#target.endresult])).
  +    extract(T, Target, lists:append(Res, [Target#target.endresult]));
  +extract([cancelled | T], Target, Res) when record(Target, target) ->
  +    extract(T, Target, lists:append(Res, [Target#target.cancelled])).
   
   set_pid(Target, Value) when record(Target, target) ->
       Target#target{pid=Value}.
  
positive.code: -export([add/7, empty/0, list_length/1, debugfriendly/1,
  	 get_using_branch/2, get_targets_in_state/2, get_responses/1,
  	 extract/2, set_pid/2, set_state/2, set_endresult/2, set_dstlist/2,
           update_target/2]).
  
  -record(target, {ref, branch, request, pid, state, timeout, endresult, dstlist}).
  -record(targetlist, {list}).
  
  % This module is used by sipproxy to handle a list of actions we are working
  
negative.code:     case get_using_branch(Branch, TargetList) of
  	none ->
  	    NewTarget = #target{ref=make_ref(), branch=Branch, request=Request, pid=Pid, state=State,
  		   		endresult=none, dstlist=DstList, timeout=Timeout, cancelled=false},
  	    #targetlist{list=lists:append(TargetList#targetlist.list, [NewTarget])};
  	_ ->
  	    logger:log(error, "targetlist: Asked to add target with duplicate branch ~p to list :~n~p",
  