anchor.diff:      end.
   
   send_result(Request, Socket, Status, Reason, ExtraHeaders) ->
  -    case transactionlayer:send_response_request(Request, Status, Reason, ExtraHeaders) of
  -	ok -> ok;
  -	_ ->
  -	    {Method, URI, Header, Body} = Request,
  -	    logger:log(error, "Sipserver: Failed sending caught error ~p ~s (in response to ~s ~s) " ++
  -	    		"using transaction layer - sending directly on the socket we received the request on",
  -	    		[Status, Reason, Method, sipurl:print(URI)]),
  -	    transportlayer:send_result(Header, Socket, "", Status, Reason, ExtraHeaders)
  +    {Method, URI, _, _} = Request,
  +    case Method of
  +	"ACK" ->
  +	    logger:log(normal, "Sipserver: Suppressing application error response ~p ~s in response to ACK ~s",
  +			[Status, Reason, sipurl:print(URI)]);
  +	_ ->
  +	    case transactionlayer:send_response_request(Request, Status, Reason, ExtraHeaders) of
  +		ok -> ok;	
  +		_ ->
  +		    {Method, URI, Header, Body} = Request,
  +		    logger:log(error, "Sipserver: Failed sending caught error ~p ~s (in response to ~s ~s) " ++
  +	    			"using transaction layer - sending directly on the socket we received the request on",
  +	    			[Status, Reason, Method, sipurl:print(URI)]),
  +		    transportlayer:send_result(Header, Socket, "", Status, Reason, ExtraHeaders)
  +	    end
       end.
   
   internal_error(Request, Socket) ->
  
positive.code: 	    true
      end;
  check_packet({response, Status, Reason, Header, Body}, Origin) ->
      {_, FromURI} = sipheader:from(keylist:fetch("From", Header)),
      sanity_check_uri("From:", FromURI, Header),
      {_, ToURI} = sipheader:to(keylist:fetch("To", Header)),
      sanity_check_uri("To:", ToURI, Header).
  
  check_for_loop(Header, URI, Method) ->
      LoopCookie = siprequest:get_loop_cookie(Header, URI),
  
negative.code: url2str(URL) ->
      sipurl:print(URL).
  
  sanity_check_contact(Name, Header) ->
      case keylist:fetch(Name, Header) of
  	[Str] ->
  	    case sipheader:from([Str]) of
  		{_, URI} ->
  		    sanity_check_uri(Name ++ ":", URI, Header);
  		_ ->
  		    throw({sipparseerror, Header, 400, "Invalid " ++ Name ++ ": header"})
  	    end;
  	_ ->
  	    throw({sipparseerror, Header, 400, "Missing " ++ Name ++ ": header"})
      end.
  
  sanity_check_uri(Desc, {none, _, _, _, _, _}, Header) ->
      throw({sipparseerror, Header, 400, "No user part in " ++ Desc ++ " URL"});
  sanity_check_uri(Desc, {_, _, none, _, _}, Header) ->
  