anchor.diff:  	    {noreply, State, ?TIMEOUT}
       end;
   
  -%% A response has been received by the transaction layer and a SIP message handler is
  -%% asking us of what to do with it. See comment about requests above.
  +%%--------------------------------------------------------------------
  +%% Function: handle_call(Msg, From, State)
  +%%           Msg     = {sipmessage, Request, Origin, LogStr}
  +%%           Request = request record()
  +%%           Origin  = siporigin record()
  +%%           LogStr  = string()
  +%% Descrip.: A SIP response has been received by the transport layer.
  +%%           Check to see if we have a matching transaction (i.e.
  +%%           this is a resend) or if we need to start a new
  +%%           transaction.
  +%% Returns : {reply, Reply, State, Timeout}
  +%%           Reply     = {continue}                |
  +%%                       {pass_to_core, AppModule}
  +%%           AppModule = atom()
  +%%
  +%% Notes   : This handle_call() is a bit special in the same way as
  +%%           the {sipmessage, Request ...} handle_call() above. See
  +%%           it's documentation to understand Reply.
  +%%--------------------------------------------------------------------
   handle_call({sipmessage, Response, Origin, LogStr}, From, State) when record(Response, response), record(Origin, siporigin) ->
       AppModule = State#state.appmodule,
       case get_client_transaction_pid(Response, State#state.tstatelist) of
  
positive.code: 	    {error, "Transaction layer failure"}
      end.
  
  is_good_transaction(TH) when record(TH, thandler) ->
      case util:safe_is_process_alive(TH#thandler.pid) of
  	{true, _} ->
  
negative.code: 	    none
      end.
  
  %%--------------------------------------------------------------------
  %% Function: get_client_transaction(Response, TStateList)
  %%           Response    = response record()
  %%           TStateList  = list() of transactionstate record()
  %% Descrip.: Find a client transaction in TStateList given a response.
  %% Returns : TState |
  %%           none
  %%           TState      = transactionstate record()
  %%--------------------------------------------------------------------
  get_client_transaction(Response, TStateList) when is_record(Response, response) ->
      Header = Response#response.header,
      TopVia = sipheader:topvia(Header),
      Branch = sipheader:get_via_branch(TopVia),
      {_, Method} = sipheader:cseq(keylist:fetch("CSeq", Header)),
      transactionstatelist:get_client_transaction(Method, Branch, TStateList).
  
  %%--------------------------------------------------------------------
  %% Function: get_client_transaction_pid(Response, TStateList)
  %%           Response    = response record()
  %%           TStateList  = list() of transactionstate record()
  %% Descrip.: Find a client transaction in TStateList given a response.
  %%           Return it's pid.
  %% Returns : Pid  |
  %%           none
  %%           Pid         = pid()
  %%--------------------------------------------------------------------
  get_client_transaction_pid(Response, TStateList) when is_record(Response, response) ->
      case get_client_transaction(Response, TStateList) of
  	none ->
  	    none;
  	TState when is_record(TState, transactionstate) ->
  	    case transactionstatelist:extract([pid], TState) of
  		[TPid] when is_pid(TPid) ->
  		    TPid;
  		_ ->
  		    none
  