anchor.diff:  	request(ServiceName, Caps, Request);
   handle_request(#diameter_packet{msg = Request, errors = Errors} = _Packet,
   		ServiceName, {_, Caps} = _Peer) ->
  -	errors(ServiceName, Caps, Request, Errors).
  +	case errors(ServiceName, Caps, Request, Errors) of
  +		ok ->
  +			request(ServiceName, Caps, Request);
  +		{error, Error} ->
  +			{answer_message, Error}
  +	end.
   
   %%----------------------------------------------------------------------
   %%  internal functions
  
positive.code: 		Fsm :: pid(),
  		Result :: term().
  %% @doc Invoked when an answer message is received from a peer.
  handle_answer(#diameter_packet{msg = Message} = _Packet,
  		 _Request, _ServiceName, _Peer, Fsm) ->
      gen_fsm:send_event(Fsm, {ok, Message}).
  
  -spec handle_error(Reason, Request, ServiceName, Peer, Fsm) -> Result
  	when
  
negative.code: 			request(ServiceName, Capabilities, Request, T)
  	end;
  request(ServiceName, Capabilities, Request, []) ->
  	{error, Error} = errors(ServiceName, Capabilities, Request,
  			[?'DIAMETER_BASE_RESULT-CODE_UNKNOWN_PEER']),
  	{answer_message, Error}.
  
  -spec process_request(ServiceName, Capabilities, Request,
  		Address, Port, PasswordReq, Trusted) -> Result
  