anchor.diff:          false when Expires==0 ->
               {undefined, Acc};
           false ->
  -            Base0 = #reg_contact{
  -                call_id = CallId, 
  -                cseq = CSeq,
  -                transport = Transp,
  -                path = Path,
  -                min_tmp_pos = 0,
  -                next_tmp_pos = 0,
  -                meta = []
  -            },
  -            {Base0, Acc};
  +            {#reg_contact{min_tmp_pos=0, next_tmp_pos=0, meta=[]}, Acc};
           {value, #reg_contact{call_id=CallId, cseq=OldCSeq}, _} when OldCSeq >= CSeq -> 
               throw({invalid_request, "Rejected Old CSeq"});
           {value, _, Acc0} when Expires==0 ->
  
positive.code:                 updated = LongNow,
                  expire = Now + Expires, 
                  q = Q,
                  instance_id = InstId,
                  reg_id = RegId,
                  next_tmp_pos = Next+1
  
negative.code:     end.
  
  
  
  %% @private
  -spec update(nksip:request(), times(), ob_proc(), gruu_proc()) ->
      ok.
  
  update(Req, Times, ObProc, GruuProc) ->
      #sipmsg{app_id=AppId, to=To, contacts=Contacts} = Req,
      {_, _, Default, Now, _LongNow} = Times,
      check_several_reg_id(Contacts, Default, false),
      Path = case nksip_sipmsg:header(Req, <<"Path">>, uris) of
          error -> throw({invalid_request, "Invalid Path"});
          Path0 -> Path0
  