anchor.diff:  	    %% RFC 3261 doesn't appear to document the proper error code for this case
   	    throw({siperror, 403, "Request out of order, contained old CSeq number"})
       end;
  -unregister_contact(LogTag, Location, _RequestCallId, _RequestCSeq) when is_record(Location, phone) ->
  +unregister_phone(LogTag, Phone, _RequestCallId, _RequestCSeq) when is_record(Phone, phone) ->
       logger:log(debug, "~s: Not un-registering location with class not 'dynamic' : ~p",
  -	       [LogTag, Location#phone.requristr]),
  +	       [LogTag, Phone#phone.requristr]),
       ok.
   
   %%--------------------------------------------------------------------
  
positive.code:     case is_valid_wildcard_request(Header, Contacts) of
  	true ->
  	    logger:log(debug, "Location: Processing valid wildcard un-register"),
  	    case phone:get_sipuser_locations(SipUser) of
  		{ok, SipUserLocations} ->
  		    unregister(LogTag, Header, SipUserLocations);
  		_ ->
  		    none
  	    end;
  	_ ->
  	    none
      end.
  
  %% return = ok       | wildcard processed
  %%          SipError   db error
  %% unregister all location entries for a sipuser
  unregister(LogTag, Header, Locations) ->
      %% unregister all Locations entries
      F = fun() ->
  		unregister_contacts(LogTag, Header, Locations)
  	end,
      %% process unregistration atomically - change all or nothing in database
      case mnesia:transaction(F) of
  
negative.code:     %% and make them use SIPS if the client did.
      {Proto, Port} = case ContactURL#sipurl.proto of
  			"sips" ->
  			    {"sips", sipsocket:get_listenport(tls)};
  			_ ->
  			    %% default to plain old sip for anything except sips
  			    {"sip", sipsocket:get_listenport(tcp)}
  		    end,
      MyURL = sipurl:new([{proto, Proto},
  			{host, siprequest:myhostname()},
  