anchor.diff:                      _    -> AccI
                   end
           end,
  -    MyRange = lists:foldl(F, Range, MsgFwd),
  +    % we are responsible for the intersection of the BulkOwner range and our
  +    % ring maintenance range (plus DB range from ongoing slides).
  +    MyDBRange = intervals:union(dht_node_state:get(State, my_range),
  +                                dht_node_state:get(State, db_range)),
  +    MyRange0 = lists:foldl(F, Range, MsgFwd),
  +    MyRange = intervals:intersection(MyRange0, MyDBRange),
       case intervals:is_empty(MyRange) of
           true -> ok;
           _ ->
  
positive.code:     comm:send_local(DHTNode, {bulkowner, start, Id, intervals:all(), {bulk_distribute, Proc,
                                                          Pos, Msg, Data}}).
  
  -spec send_reply(Id::uid:global_uid(), Target::comm:mypid(), Msg::comm:message(), Parents::[comm:mypid()], Shepherd::comm:erl_local_pid()) -> ok.
  send_reply(Id, Target, {?send_to_group_member, Proc, Msg}, [], Shepherd) ->
      comm:send(Target, {bulkowner, reply, Id, Msg}, [{shepherd, Shepherd}, {group_member, Proc}]);
  send_reply(Id, Target, Msg, [], Shepherd) ->
  
negative.code:     send_reply(Id, Target, Msg, Parents, Shepherd).
  
  %% @doc main routine. It spans a broadcast tree over the nodes in I
  -spec bulk_owner(State::dht_node_state:state(), Id::uid:global_uid(),
                   I::intervals:interval(), Msg::comm:message(),
                   Parents::[comm:mypid()]) -> ok.
  bulk_owner(State, Id, I, Msg, Parents) ->
  %%     log:pal("bulk_owner:~n self:~p,~n int :~p,~n rt  :~p~n", [dht_node_state:get(State, node), I, ?RT:to_list(State)]),
      Neighbors = dht_node_state:get(State, neighbors),
  