anchor.diff:              rechoke_choke(Next, Count, Optimistics);
           false ->
               etorrent_peer_control:unchoke(P#rechoke_info.pid),
  -            case P#rechoke_info.r_interest_state =:= interested of
  -                true ->
  +            case P#rechoke_info.r_interest_state of
  +                interested ->
                       rechoke_choke(Next, Count+1, Optimistics);
  -                false ->
  +                not_interested ->
                       rechoke_choke(Next, Count, Optimistics)
               end
       end.
  
positive.code: 
  split_preferred(Peers) ->
      {Downs, Leechs} = split_preferred_peers(Peers, [], []),
      %% Notice that the rate on which we sort is negative, so the fastest peer is actually first in the list
      {lists:keysort(#rechoke_info.rate, Downs),
       lists:keysort(#rechoke_info.rate, Leechs)}.
  
  
negative.code:                     not_found -> true;
                      {peer_info, _Kind, Id} ->
                          PL = etorrent_peer_states:get_pids_interest(Id, Pid),
                          %% Peers not interested in us are skipped.
                          %% Optimistically unchoking these would not
                          %% help as they would request nothing. Peers
                          %% already not choking us are in the valuation
                          %% game, so they are also skipped.
                          ( proplists:get_value(interested, PL) == not_interested
                            orelse proplists:get_value(choking, PL) == unchoked )
                  end
          end,
      {Front, Back} = lists:splitwith(F, Chain),
      %% Advance chain, happens rarely
      Back ++ Front.
  
  insert_new_peer_into_chain(Pid, []) ->
  