anchor.diff:  		       [NewBranch]),
   	    Request = State#state.request,
   	    Timeout = State#state.timeout,
  -	    NewDstList = resolve_if_necessary(DstList),
  +	    ApproxMsgSize = State#state.approxmsgsize,
  +	    NewDstList = resolve_if_necessary(DstList, ApproxMsgSize),
   	    [FirstDst | _] = NewDstList,
   	    %% XXX ideally we should not try to contact the same host over UDP, when
   	    %% we receive a transport layer error for TCP, if there were any other
  
positive.code: %%% Description : Try a given set of destinations sequentially
  %%%               until we get a final response from one or them,
  %%%               or have no destinations left to try.
  %%%               
  %%% Created :  20 Feb 2004 by Fredrik Thulin <ft@it.su.se>
  
  -module(sippipe).
  -export([start/5]).
  
  -record(state, {branch, serverhandler, clienthandler, request, dstlist, timeout, starttime, endtime, warntime}).
  
  -include("sipsocket.hrl").
  -include("siprecords.hrl").
  
negative.code:     end.
  
  %% Do piping between a now existing server and client transaction handler.
  final_start(Branch, ServerHandler, ClientPid, Request, DstList, Timeout, ApproxMsgSize) when record(Request, request) ->
      StartTime = util:timestamp(),
      State=#state{branch=Branch, serverhandler=ServerHandler, clienthandler=ClientPid,
  		 request=Request, dstlist=DstList, approxmsgsize=ApproxMsgSize,
  		 timeout=Timeout, endtime = StartTime + Timeout, warntime = StartTime + 300},
      logger:log(debug, "sippipe: All preparations finished, entering pipe loop"),
      loop(State).
  