anchor.diff:      comm:send(From, {rt_learn_neighbor, node2mynode(MyNode, comm:this())}),
       State;
   
  -handle_custom_message({rt_learn_neighbor, {Id, IdVersion, PidDHT, PidRT}}, State) ->
  +handle_custom_message({rt_learn_neighbor, {Id, _IdVersion, PidDHT, PidRT}}, State) ->
       OldRT = rt_loop:get_rt(State),
       {NewRT, NewERT} =
           case rt_lookup_node(Id, OldRT) of
  
positive.code:     ToBeAddedNodes1 = sets:subtract(NewNeighbors3, OldNeighbors3),
      %% Add PidRTs to the nodes to be added. There might be PidRTs in the old RT
      %% even for "new" nodes, e.g. for nodes added through get_rt_reply (i.e. for
      %% normal nodes are converted to sticky nodes). Get the VersionIds from the
      %% list of new nodes.
      OldNodes = lists:map(fun rt_entry_node/1, gb_trees:values(get_rt_tree(RT))),
      NewNodes = lists:map(fun(Node) -> {node:id(Node), node:id_version(Node),
                                         node:pidX(Node)}
  
negative.code: -spec id(Node::mynode()) -> key().
  id({Id, _IdVersion, _PidDHT, _PidRT}) -> Id.
  
  %% @doc Determines whether Node1 is a newer instance of Node2.
  %%      Note: Both nodes need to share the same PidDHT, otherwise an exception of
  %%      type 'throw' is thrown! PidRT is ignored for the comparison.
  -spec is_newer(Node1::mynode(), Node2::mynode()) -> boolean().
  is_newer(_Node1 = {Id1, IdVersion1, PidDHT, _PidRT1},
           _Node2 = {Id2, IdVersion2, PidDHT, _PidRT2}) ->
      if
          (IdVersion1 > IdVersion2) -> true;
          IdVersion1 < IdVersion2 -> false;
          Id1 =:= Id2 -> false;
          true -> throw('got two nodes with same IDversion but different ID')
      end.
  
  
  %% @doc Send Msg to the routing table.
  %%      Send directly if rt_loop pid is known, otherwise as group_member msg.
  