anchor.diff:               end, intervals:empty(), rr_recon:quadrant_intervals()),
       NewState = State#rr_resolve_state{ my_range = MyI },
       case intervals:is_empty(ISec) of
  -        false -> comm:send_local(DhtPid, {get_entries, self(), ISec}),
  -                 NewState;
  -        true  -> shutdown(resolve_abort, NewState)
  +        false ->
  +            comm:send_local(DhtPid, {get_entries, self(), ISec}),
  +            NewState;
  +        true ->
  +            shutdown(resolve_abort, NewState,
  +                     State#rr_resolve_state.feedbackDestPid, [], [])
       end;
   
   on({get_entries_response, EntryList}, State =
  
positive.code:    State = #rr_resolve_state{operation = {interval_upd_my, I} = _Operation}) ->
      ?TRACE("RESOLVE - START~nOperation=~.2p~nState=~.2p",
             [_Operation, _Msg], State),
      ISec = intervals:intersection(MyI, I),
      NewState = State#rr_resolve_state{ my_range = MyI },
      case intervals:is_empty(ISec) of
          false -> case rrepair:select_sync_node(ISec, true) of
                       not_found ->
                           shutdown(resolve_abort, NewState);
                       DKey ->
                           % TODO: keep trying to resolve the whole intersection
                           %       e.g. by removing each sync interval and
  
negative.code:     ToUpdate = start_update_key_entry(KvvList, MyI, comm:this(), DhtPid),
      ?TRACE("GET INTERVAL - KEY UPD - KVVListLen=~p ; ToUpdate=~p", [length(KvvList), ToUpdate], State),
      NewState = State#rr_resolve_state{stats = Stats#resolve_stats{diff_size = ToUpdate}},
      if ToUpdate =:= 0 ->
             shutdown(resolve_ok, NewState,
                      State#rr_resolve_state.feedbackDestPid, [], []);
         true ->
             % note: shutdown and feedback handled by update_key_entry_ack
             NewState
      end;
  
  on({get_state_response, MyI}, State =
  