anchor.diff:  extract_ring_info([]) ->
       [];
   extract_ring_info([RingE]) ->
  -    Me_tmp = node:id(node_details:get(RingE, node)),
  -    Pred_tmp = node:id(node_details:get(RingE, pred)),
  -    Label = node_details:get(RingE, hostname) ++ " (" ++
  +    MyId = node:id(node_details:get(RingE, node)),
  +    PredId = node:id(node_details:get(RingE, pred)),
  +    MyIndexStr = case get_indexed_id_by_id(MyId) of
  +                     undefined -> "";
  +                     MyIndex -> integer_to_list(MyIndex) ++ ": "
  +                 end,
  +    Label = MyIndexStr ++ node_details:get(RingE, hostname) ++ " (" ++
                   integer_to_list(node_details:get(RingE, load)) ++ ")",
  -    case Me_tmp =:= Pred_tmp of
  +    case MyId =:= PredId of
           true -> [{Label, "100.00", true}];
           _ ->
  -            Diff = ?RT:get_range(Pred_tmp, Me_tmp) * 100 / ?RT:n(),
  +            Diff = ?RT:get_range(PredId, MyId) * 100 / ?RT:n(),
               Me_val = io_lib:format("~f", [Diff]),
               Unknown_val = io_lib:format("~f", [100 - Diff]),
               [{Label, Me_val, true}, {"unknown", Unknown_val, false}]
  
positive.code:              ]
              }
      end,
      ets:delete(webhelpers_indexed_ring),
      EHtml.
  
  %% @doc Renders an indexed ring into ehtml.
  %%      Precond: existing webhelpers_indexed_ring ets table with
  %%      node_id -> index mapping.
  -spec renderIndexedRing(Node::statistics:ring_element()) -> html_type().
  renderIndexedRing({ok, Details}) ->
  
negative.code:            false ->
                 {td, [], io_lib:format("<span style=\"color:red\">~p</span>", [PredIndex])}
         end,
         {td, [], io_lib:format("~p:&nbsp;~p", [MyIndexStr, node:id(Node)])},
         case is_list(FirstSuccIndex) orelse FirstSuccIndex =/= 1 of
             true -> {td, [], io_lib:format("<span style=\"color:red\">~p</span>", [SuccIndices])};
             false -> {td, [], io_lib:format("~p", [SuccIndices])}
  