anchor.diff:  		    end;
   		{atomic, _ResultOfFun} ->
   		    %% RFC 3261 chapter 10.3 - Processing REGISTER Request - step 8
  -		    {ok, {200, "OK", [{"Contact", fetch_contacts(SipUser)}]}}
  +		    {ok, create_process_updates_response(SipUser)}
   	    end;
   	ok ->
   	    %% wildcard found and processed
   	    %% RFC 3261 chapter 10.3 - Processing REGISTER Request - step 8
  -	    {ok, {200, "OK", [{"Contact", fetch_contacts(SipUser)}]}};
  +	    {ok, create_process_updates_response(SipUser)};
   	SipError ->
   	    SipError
  +    end.
  +
  +%% part of process_updates/4. Returns {200, "OK", []} | {200, "OK", ExtraHeaders}
  +create_process_updates_response(SipUser) ->
  +    case fetch_contacts(SipUser) of
  +	[] ->
  +	    {200, "OK", []};
  +	NewContacts when is_list(NewContacts) ->
  +	    {200, "OK", [{"Contact", NewContacts}]}
       end.
   
   
  
positive.code:     lists:foreach(F, Locations).
  
  
  unregister_contact(LogTag, Location, RequestCallId, RequestCSeq) when is_record(Location, phone) ->
      SameCallId = (RequestCallId == Location#phone.callid),
      HigherCSeq = (RequestCSeq > Location#phone.cseq),
  
  
negative.code: 		       [LogTag, SipUser, Location#phone.requristr, Priority]),
  	    ok;
  	false ->
  	    %% Request CSeq value was too old, abort Request
  	    %% 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) ->
      logger:log(debug, "~s: Not un-registering location with class not 'dynamic' : ~p",
  	       [LogTag, Location#phone.requristr]),
      ok.
  
  %%--------------------------------------------------------------------
  %% Function: parse_register_contact_expire(Header, Contact)
  