anchor.diff:  
   check_packet({request, Method, URI, Header, Body}, Origin) ->
       check_supported_uri_scheme(URI, Header),
  -    sanity_check_contact("From", Header),
  -    sanity_check_contact("To", Header),
  +    sanity_check_contact(request, "From", Header),
  +    sanity_check_contact(request, "To", Header),
       case sipheader:cseq(keylist:fetch("CSeq", Header)) of
   	{unparseable, CSeqStr} ->
   	    logger:log(error, "INVALID CSeq ~p in packet from ~s", [CSeqStr, origin2str(Origin, "unknown")]),
  -	    throw({sipparseerror, Header, 400, "Invalid CSeq"});
  +	    throw({sipparseerror, request, Header, 400, "Invalid CSeq"});
   	{CSeqNum, CSeqMethod} ->
   	    case util:isnumeric(CSeqNum) of
   		false ->
  -		    throw({sipparseerror, Header, 400, "CSeq number " ++ CSeqNum ++ " is not an integer"});	
  +		    throw({sipparseerror, request, Header, 400, "CSeq number " ++ CSeqNum ++ " is not an integer"});	
   		_ -> true
   	    end,
   	    if
   		CSeqMethod /= Method ->
  -		    throw({sipparseerror, Header, 400, "CSeq Method " ++ CSeqMethod ++ " does not match request Method " ++ Method});
  +		    throw({sipparseerror, request, Header, 400, "CSeq Method " ++ CSeqMethod ++ " does not match request Method " ++ Method});
   		true -> true
   	    end
       end,
  
positive.code: 	    true
      end;
  check_packet({response, Status, Reason, Header, Body}, Origin) ->
      sanity_check_contact("From", Header),
      sanity_check_contact("To", Header).
  
  check_for_loop(Header, URI, Method) ->
      LoopCookie = siprequest:get_loop_cookie(Header, URI),
  
negative.code:     case via_indicates_loop(LoopCookie, {ViaHostname, ViaPort},
      			    sipheader:via(keylist:fetch("Via", Header))) of
  	true ->
  	    throw({sipparseerror, request, Header, 482, "Loop Detected"});
  	_ ->
  	    true
      end.
  