anchor.diff:      This = comm:make_global(pid_groups:get_my(dht_node)),
       fun (prbr_bottom, _WriteFilter, _Next) ->
               {false, lease_does_not_exist};
  -        (#lease{range = R0}, _, #lease{range = R1})    when R0 =/= R1->
  -            {false, range_changed};
  -        (#lease{aux = Aux0}, _, #lease{aux = Aux1})    when Aux0 =/= Aux1->
  -            {false, aux_changed};
           (#lease{owner = O0}, _, #lease{owner = O1})    when O0 =/= O1->
               {false, owner_changed};
           (#lease{owner = O0}, _, _)                     when O0 =/= This->
               {false, owner_changed};
  -        (#lease{timeout = T0}, _, #lease{timeout = T1})  when not (T0 < T1)->
  -            {false, timeout_is_not_newer_than_current_lease};
  +        (#lease{aux = Aux0}, _, #lease{aux = Aux1})    when Aux0 =/= Aux1->
  +            {false, aux_changed};
  +        (#lease{range = R0}, _, #lease{range = R1})    when R0 =/= R1->
  +            {false, range_changed};
           (#lease{epoch = E0}, _, _)                     when E0 =/= CurrentEpoch ->
               {false, epoch_or_version_mismatch};
           (#lease{version = V0}, _, _)                   when V0 =/= CurrentVersion->
               {false, epoch_or_version_mismatch};
  +        (#lease{timeout = T0}, _, #lease{timeout = T1})  when not (T0 < T1)->
  +            {false, timeout_is_not_newer_than_current_lease};
           (_Current, _WriteFilter, Next) ->
               case (os:timestamp() <  Next#lease.timeout) of
                   false ->
  
positive.code:             aux     = empty,
              version = 0,
              timeout = new_timeout()},
      ContentCheck = is_valid_split_step4(OldEpoch, OldVersion, OldAux),
      DB = get_db_for_id(Id),
      Self = comm:reply_as(self(), 6, {l_on_cseq, split_reply_step4, L2, R1, R2, '_'}),
      rbrcseq:qwrite(DB, Self, Id,
  
negative.code:     State;
  
  on({l_on_cseq, split_reply_step1, _Lease, _R1, _R2,
      {qwrite_deny, _ReqId, _Round, Lease, {content_check_failed, Reason}}}, State) ->
      % @todo error handling
      ct:pal("split first step failed: ~p~n", [Reason]),
      case Reason of
          lease_already_exists ->
              remove_lease_from_dht_node_state(Lease, State)
      end;
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
  