anchor.diff:      OldSipState = State#state.sipstate,
       {Status, Reason} = {Response#response.status, Response#response.reason},
       NewState1 = go_stateful(Created, ResponseToMethod, Status, LogTag, State),
  -    {Action, SendReliably, NewSipState} = send_response_statemachine(ResponseToMethod, Status, OldSipState),
  -    NewState2 = case Action of
  -		    ignore ->
  -			NewState1;
  -		    send ->
  -			LogLevel = if
  -				       Status >= 200 -> normal;
  -				       true -> debug
  -				   end,
  -			What = case Created of
  -				   created -> "Responding";
  -				   _ -> "Forwarding response"
  -			       end,
  -			logger:log(LogLevel, "~s: ~s ~p ~s",
  -				   [LogTag, What, Status, Reason]),
  -			{ok, NewState2_1} = send_response(Response, SendReliably, NewState1),
  -			NewState2_1
  -		end,
  -    NewState = enter_sip_state(NewSipState, NewState2),
  +    NewState = 
  +	case catch send_response_statemachine(ResponseToMethod, Status, OldSipState) of
  +	    {Action, SendReliably, NewSipState} when Action == ignore; Action == send ->
  +		NewState2 = case Action of
  +				ignore ->
  +				    NewState1;
  +				send ->
  +				    LogLevel = if
  +						   Status >= 200 -> normal;
  +						   true -> debug
  +					       end,
  +				    What = case Created of
  +					       created -> "Responding";
  +					       _ -> "Forwarding response"
  +					   end,
  +				    logger:log(LogLevel, "~s: ~s ~p ~s",
  +					       [LogTag, What, Status, Reason]),
  +				    {ok, NewState2_1} = send_response(Response, SendReliably, NewState1),
  +				    NewState2_1
  +			    end,
  +		enter_sip_state(NewSipState, NewState2);
  +	    E ->
  +		logger:log(error, "~s: State machine does not allow us to send '~p ~s' in response to '~s ~s' when my SIP-state is '~p'",
  +			   [LogTag, Status, Reason, ResponseToMethod, sipurl:print(ResponseToURI), OldSipState]),
  +		logger:log(debug, "~s: State machine returned :~n~p", [LogTag, E]),
  +		NewState1
  +	end,
       {ok, NewState}.
   
   go_stateful(created, Method, Status, LogTag, State) when record(State, state), State#state.mode == stateless, Status >= 200 ->
  
positive.code: 	    NewState
      end.
  
  process_received_ack(State) when record(State, state) ->
      Request = State#state.request,
      {Method, URI} = {Request#request.method, Request#request.uri},
      Response = State#state.response,
  
negative.code: 			    	       [LogTag, Method, sipurl:print(URI), Status, Reason, State]),
  			    State
  		    end;
  		_ ->
  		    logger:log(error, "~s: Resend after ~p (response to ~s ~s, state '~p'): no response sent!",
  			       [Timeout, Method, sipurl:print(URI), State]),
  		    State
  