anchor.diff:  -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
   
   -record(state, {branch, socket_in, logtag, socket, report_to, request, response, sipstate,
  -	timerlist, dst, timeout, cancelled, do_cancel, tl_branch}).
  +	timerlist, dst, timeout, cancelled, do_cancel, tl_branch, initialized=no}).
   
   -include("sipsocket.hrl").
   -include("siprecords.hrl").
  
positive.code: 		       end
  	       end,
      check_quit({noreply, NewState});
  
  handle_info(Info, State) ->
      logger:log(error, "Client transaction: Received unknown gen_server info :~n~p", [Info]),
  
negative.code: 		   "INVITE" -> calling;
  		   _ -> trying
  	       end,
      State = #state{branch=Branch, logtag=LogTag, socket=SocketIn, request=Request,
  		   sipstate=SipState, timerlist=siptimer:empty(),
  		   dst=Dst, socket_in=SocketIn, timeout=Timeout,
  		   cancelled=false, report_to=Parent},
      logger:log(debug, "~s: Started new client transaction for request ~s ~s~n(dst ~s).",
  	       [LogTag, Method, sipurl:print(URI), sipdst:dst2str(Dst)]),
      %% Timeout 0 so that the spawned process immediately gets a timeout signal
      %% which will cause it to send out our first request. We can't do that here since
      %% that might risk to block the caller, and since that could cause the spawn_link
      %% to fail in case the transport layer (for example) does a throw()
      {ok, State, 0};
  init([Request, SocketIn, Dst, Branch, Timeout, Parent]) ->
      logger:log(error, "Client transaction: Will not start, invalid dst (~p) or request", [Dst]),
      {stop, "Invalid arguments for client transaction"}.
  