anchor.diff:  	    DstList = [FirstDst | DstT],
   	    case transactionlayer:start_client_transaction(Request, none, FirstDst, Branch, Timeout, self()) of
   		BranchPid when pid(BranchPid) ->
  -		    start3(Branch, ServerHandler, BranchPid, Request, DstList, Timeout);
  +		    final_start(Branch, ServerHandler, BranchPid, Request, DstList, Timeout);
   		{error, E} ->
   		    logger:log(error, "sippipe: Failed starting client transaction : ~p", [E]),
   		    transactionlayer:send_response_handler(ServerHandler, 500, "Failed resolving destination"),
  
positive.code:     end.
  
  %% Do piping between a now existing server and client transaction handler.
  start3(Branch, ServerHandler, ClientPid, Request, DstList, Timeout) when record(Request, request) ->
      StartTime = util:timestamp(),
      State=#state{branch=Branch, serverhandler=ServerHandler, clienthandler=ClientPid,
  		 request=Request, dstlist=DstList,
  		 timeout=Timeout, endtime = StartTime + Timeout, warntime = StartTime + 300},
      loop(State).
  
  
  
negative.code: 		    transactionlayer:send_response_handler(ServerHandler, 500, "Failed resolving Route destination"),
  		    error;
                  DstList when list(DstList) ->
                      guarded_start(ServerHandler, ClientPid, Request, DstList, Timeout);
                  Unknown ->
                      logger:log(error, "sippipe: Failed resolving URI ~s : ~p", [sipurl:print(DstURI), Unknown]),
  		    transactionlayer:send_response_handler(ServerHandler, 500, "Failed resolving Route destination"),
  