anchor.diff:      NewExpire = lists:max([0, Expire - Now]),
   
       {NewGRUUs, GRUUparams} = locations_to_contacts2_gruu(Do_GRUU, H, SipUser, To, GRUUs),
  -    Params = [{"expires", integer_to_list(NewExpire)} | GRUUparams],
  +    OutboundParams = locations_to_contacts2_outbound(DoOutbound, Do_GRUU, H),
  +    ExpiresParams = [{"expires", integer_to_list(NewExpire)}],
  +    Params = lists:append([ExpiresParams, GRUUparams, OutboundParams]),
       Contact = contact:new(Location, Params),
  -    locations_to_contacts2(T, Now, SipUser, Do_GRUU, To, NewGRUUs, [contact:print(Contact) | Res]).
  +    NewRes = [contact:print(Contact) | Res],
  +    locations_to_contacts2(T, Now, SipUser, Do_GRUU, DoOutbound, To, NewGRUUs, NewRes).
   
   locations_to_contacts2_gruu(_DoGRUU = false, _E, _SipUser, _To, GRUUs) ->
       {GRUUs, []};
  
positive.code: 
      autotest:mark(?LINE, "process_updates/2 - 28.1"),
      %% test client makes second REGISTER to other node
      PU_Contacts28 = contact:parse([PU_Contact27Str ++ ";+sip.instance=\"" ++ PU_Contacts26_Instance ++
  				   "\";reg-id=4712;expires=30"]),
      %% same CSeq (sent to another node, right?) but different Call-Id
      PU_Header28_1 = keylist:set("CSeq", ["2701 REGISTER"], PU_RegReq1#reg_request.header),
      PU_Header28 = keylist:set("Call-Id", ["2345-some-other-call-id"], PU_Header28_1),
  
negative.code: 
  %%--------------------------------------------------------------------
  %% Function: fetch_contacts(SipUser, Do_GRUU, To)
  %%           SipUser    = string(), SIP authentication user - key in
  %%                        location database
  %%           Do_GRUU    = bool(), add gruu= parameters or not?
  %%           DoOutbound = bool(), is outbound enabled?
  %%           To         = list() of string(), REGISTER request To
  %%                        header
  %% Descrip.: Find all the locations where a specific sipuser can be
  %%           located (e.g. all the users phones).
  %% Returns : {ok, GRUUs, Contacts}
  %%           GRUUs    = bool(), true if one or more of the contacts
  %%                      were equipped with 'gruu' contact parameters
  %%           Contacts = list() of string(), formated as a contact
  %%                      field-value (see RFC 3261)
  %%--------------------------------------------------------------------
  fetch_contacts(SipUser, Do_GRUU, DoOutbound, To) ->
      {ok, Locations} = phone:get_sipuser_locations(SipUser),
      {ContainsGRUUs, Contacts} = locations_to_contacts(Locations, SipUser, Do_GRUU,
  						      DoOutbound, To, util:timestamp()),
      {ok, ContainsGRUUs, Contacts}.
  
  %% Returns: {GRUUs, Contacts}
  %%          GRUUs    = bool()
  %%          Contacts = list() of string(), (contact:print/1 of contact record())
  locations_to_contacts(Locations, SipUser, Do_GRUU, DoOutbound, To, Timestamp) ->
      locations_to_contacts2(Locations, Timestamp, SipUser, Do_GRUU, DoOutbound, To, false, []).
  
  locations_to_contacts2([], _Now, _SipUser, _Do_GRUU, _DoOutbound, _To, GRUUs, Res) ->
      {GRUUs, Res};
  locations_to_contacts2([#siplocationdb_e{expire = never} | T], Now, SipUser, Do_GRUU, DoOutbound, To, GRUUs, Res) ->
      %% Don't include static contacts which never expire
      locations_to_contacts2(T, Now, SipUser, Do_GRUU, DoOutbound, To, GRUUs, Res);
  locations_to_contacts2([#siplocationdb_e{expire = Expire} = H | T], Now, SipUser, Do_GRUU, DoOutbound, To, GRUUs, Res)
    when is_integer(Expire) ->
      Location = H#siplocationdb_e.address,
  
  