anchor.diff:                      )
               end,
               rt_set_nodes(RT, Nodes);
  -        false ->
  +        {value, ExistingEntry} ->
  +            % Always update a sticky entry, as that information was send from ring
  +            % maintenance.
               case Type of
                   sticky -> % update entry
                       StickyEntry = rt_get_node(node:id(Entry), RT),
  
positive.code:     % only add the entry if it doesn't exist yet or if it is a sticky node. If its a
      % stickynode, RM told us about a new neighbour -> if the neighbour was already added
      % as a normal node, convert it to a sticky node now.
      case gb_trees:lookup(node:id(Entry), get_rt_tree(RT)) =:= none of
          true ->
              % change the type to 'sticky' if the node is between the neighbors of the source
              % node
              AdaptedType = case Type of
  
negative.code:                         StickyEntry#rt_entry{type=sticky},
                          get_rt_tree(RT)),
                      rt_set_nodes(RT, Nodes);
                  _ ->
                      case node:is_newer(Entry, rt_entry_node(ExistingEntry)) of
                          true -> % replace an existing node with a newer version
                              Nodes = gb_trees:enter(rt_entry_id(ExistingEntry),
                                             rt_entry_set_node(ExistingEntry, Entry),
                                             get_rt_tree(RT)),
                              rt_set_nodes(RT, Nodes);
                          false -> RT
                      end
              end
      end.
  
  