anchor.diff:                          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),
  +                    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
  +                    rt_set_nodes(RT, Nodes)
               end
       end.
   
  
positive.code: %% @doc Converts the internal representation of the routing table to a list
  %%      in the order of the fingers, i.e. first=succ, second=shortest finger,
  %%      third=next longer finger,...
  -spec internal_to_list(rt()) -> nodelist:snodelist().
  internal_to_list(#rt_t{} = RT) ->
      SourceNode = get_source_node(RT),
      ListOfNodes = [rt_entry_node(N) || N <- gb_trees:values(get_rt_tree(RT))],
  
negative.code: 
  % @doc Helper to do the actual work of converting a list of node:node_type() records
  % to list beginning with the source node and wrapping around at 0
  -spec sorted_nodelist(ListOfNodes::[mynode()], SourceNode::key()) -> [mynode()].
  sorted_nodelist(ListOfNodes, SourceNode) ->
      % sort
      Sorted = lists:sort(fun(A, B) -> id(A) =< id(B) end,
  