anchor.diff:          _    -> ok
       end,
       {{unknown}, {NewNeighborhood2, RandViewSize, Cache, Churn}}.
  +
  +%% @doc Removes nodes all nodes from the given neighborhood which are in the
  +%%      interval I but keep TolerateNode.
  +-spec remove_neighbors_in_interval(Neighborhood::nodelist:neighborhood(),
  +                                   I::intervals:interval(),
  +                                   TolerateNode::node:node() | null)
  +        -> NewNeighborhood::nodelist:neighborhood().
  +remove_neighbors_in_interval(Neighborhood, I, TolerateNode) ->
  +    case intervals:is_empty(I) of
  +        false ->
  +            nodelist:filter(
  +              Neighborhood,
  +              % note: be resilient in case we have a more up-to-date TolerateNode node info!
  +              fun(N) -> (not intervals:in(node:id(N), I)) orelse
  +                            node:same_process(N, TolerateNode) end,
  +              fun(N) -> contact_new_nodes([N]) end);
  +        true -> Neighborhood
  +    end.
   
   -spec contact_new_nodes(NewNodes::[node:node_type()]) -> ok.
   contact_new_nodes([_|_] = NewNodes) ->
  
positive.code:             false -> ?DBG_ASSERT(intervals:in(node:id(NewMe), nodelist:succ_range(Neighborhood))),
                       intervals:new('(', OldId, NewId, ')')
          end,
      NewNeighborhood2 =
          nodelist:filter(NewNeighborhood1,
                          fun(N) -> not intervals:in(node:id(N), I) end,
                          fun(N) -> contact_new_nodes([N]) end),
      
      % only send pred and succ the new node
      Message = {rm, {update_node, NewMe}},
  
negative.code:         end,
      % now remove all potentially out-dated nodes and try to re-add them with
      % updated information
      NewNeighborhood2 = remove_neighbors_in_interval(NewNeighborhood1, I, null),
      {{unknown}, {NewNeighborhood2, RandViewSize, Cache, Churn}};
  
  handle_custom_message(_, _State) -> unknown_event.
  