anchor.diff:      logger:log(debug, "~s: Client transaction (~s ~s) terminating in state '~p', ~s",
   	       [LogTag, Method, sipurl:print(URI), State#state.sipstate, RStr]),
       %% If there was a reply to be sent, we must send that before changing Res into
  -    %% a stop.
  -    NewReply = case Res of
  -		   {reply, Reply, _, _} ->
  -		       send_reply(Reply, From, State),
  -		       {stop, normal, State};
  -		   {reply, Reply, _} ->
  -		       send_reply(Reply, From, State),
  -		       {stop, normal, State};
  -		   {stop, _, _, _}  ->
  -		       Res;
  -		   {stop, _, _} ->
  -		       Res;
  -		   _ ->
  -		       {stop, normal, State}
  -	       end,
  -    NewReply;
  +    %% a stop. Only include clauses for variants we actually use.
  +    NewRes = case Res of
  +		 {reply, Reply, _State} ->
  +		     send_reply(Reply, From, State),
  +		     {stop, normal, State};
  +		 {stop, _Reason, _State} ->
  +		     Res;
  +		 _ ->
  +		     {stop, normal, State}
  +	     end,
  +    NewRes;
   check_quit2(Res, _From, _State) ->
       %% sipstate was not 'terminated'
       Res.
  
positive.code: handle_info(timeout, #state{initialized=no}=State) ->
      {noreply, initiate_request(State#state{initialized=yes})};
  
  handle_info(Info, State) ->
      logger:log(error, "Client transaction: Received unknown gen_server info :~n~p", [Info]),
      check_quit({noreply, State}).
  
negative.code: 	  socket_in,	%% sipsocket record(), the socket the original request was received on
  	  logtag,	%% string(), a prefix for logging
  	  socket,	%% sipsocket record(), the socket the transport layer sent out our request on
  	  parent,	%% pid() of our parent, must be kept to recognize exit messages from it
  	  report_to,	%% pid() | none, the pid we should notify of progress ('none' in case this is
  	  		%%   for example an independent CANCEL)
  	  request,	%% request record(), the request we are supposed to send
  	  response,	%% response record(), the last response we have received that caused a sipstate change
  	  sipstate,	%% atom(), trying|calling|proceeding|completed|terminated
  	  timerlist,	%% siptimerlist record(), list of timers managed by siptimer module
  	  dst,		%% sipdst record(), the destination for our request
  	  timeout,	%% integer(), our definite timeout before ending an INVITE - NB: only applies to INVITE
  	  cancelled=false,	%% atom(), true | false - have we cancelled ourselves? that is, sent out a CANCEL
  	  do_cancel=false,	%% atom(), {true, EH} | false - have we been instructed to cancel?
  	  tl_branch,	%% string(), the branch the transaction layer actually used when sending our request
  	  initialized=no,	%% atom(), yes | no - have we finished our initialization process
  	  cancel_pid	%% undefined | pid(), if we start a CANCEL for ourselves, this is the pid of that transaction
  	 }).
  
  -include("sipsocket.hrl").
  