anchor.diff:      comm:send(Pid, {get_takeovers_response, Takeovers}),
       State.
   
  --spec compare_and_fix_rm_with_leases(state()) -> state().
  -compare_and_fix_rm_with_leases(State) ->
  +-spec compare_and_fix_rm_with_leases(state(), intervals:interval(), intervals:interval()) 
  +                                     -> state().
  +compare_and_fix_rm_with_leases(State, OldRange, NewRange) ->
       % @todo we call receive in an on-handler ?!?
       comm:send_local(pid_groups:get_my(dht_node), {get_state, comm:this(), [lease_list, my_range]}),
       {LeaseList, MyRange} = receive
  
positive.code:                     l_on_cseq:lease_takeover(Lease, Pid),
                      add_takeover(State, Lease);
                  false ->
                      ?TRACE("the proposed range is marked as dead ~w", [MissingRange]),
                      ?TRACE("the qread result is ~w", [Result]),
                      % @todo tell rm to ignore range, because it was merged?
                      State
  
negative.code:             State
      end;
  
  on({merge_after_leave, _NewLease, _OldLease, _Result}, State) ->
      ?TRACE("merge after finish done: ~w", [_Result]),
      State;
  
  on({get_node_for_new_neighbor, {get_state_response, Node}}, State) ->
  