anchor.diff:  	    case catch my_apply(RequestFun, request, [Method, URL, Header, Body, Socket, IP], LogStr) of
   		{'EXIT', E} ->
   		    logger:log(error, "=ERROR REPORT==== from RequestFun~n~p", [E]),
  -		    internal_error(Header, Socket);
  -		{siperror, Code, Text} ->
  -		    logger:log(error, "INVALID request: ~s -> ~p ~s", [LogStr, Code, Text]),
  -		    internal_error(Header, Socket, Code, Text);
  -		{siperror, Code, Text, ExtraHeaders} ->
  -		    logger:log(error, "INVALID request: ~s -> ~p ~s", [LogStr, Code, Text]),
  -		    internal_error(Header, Socket, Code, Text, ExtraHeaders);
  +		    internal_error(Request, Socket);
  +		{siperror, Status, Reason} ->
  +		    logger:log(error, "INVALID request: ~s -> ~p ~s", [LogStr, Status, Reason]),
  +		    internal_error(Request, Socket, Status, Reason);
  +		{siperror, Status, Reason, ExtraHeaders} ->
  +		    logger:log(error, "INVALID request: ~s -> ~p ~s", [LogStr, Status, Reason]),
  +		    internal_error(Request, Socket, Status, Reason, ExtraHeaders);
   		_ ->
   		    true
   	    end;
  
positive.code: 		    % terminate silently
  		    true;
  		{pass_to_core, Ref, NewDst} ->
  		    my_apply(NewDst, Type, Args, LogStr)
  	    after
  		2000 ->
  
negative.code: 	    logger:log(error, "=ERROR REPORT==== from sippacket:parse()~n~p", [E]),
  	    logger:log(error, "CRASHED parsing packet [client=~s]", [origin2str(Origin, "unknown")]),
  	    false;
  	{siperror, Status, Reason} ->
  	    logger:log(error, "INVALID packet [client=~s] ~p ~s, CAN'T SEND RESPONSE",
  	    		[origin2str(Origin, "unknown"), Status, Reason]),
  	    false;
  	{siperror, Status, Reason, ExtraHeaders} ->
  	    logger:log(error, "INVALID packet [client=~s] ~p ~s, CAN'T SEND RESPONSE",
  	    		[origin2str(Origin, "unknown"), Status, Reason]),
  	    false;
  	{drop} ->
  	    true;
  