anchor.diff:  			  S#state.file_system_pid,
   			  self(),
   			  S#state.torrent_id),
  -	    %% XXX: We set a monitor which we do not use!
  -	    _Ref = erlang:monitor(process, Pid),
  +	    erlang:monitor(process, Pid),
   	    etorrent_t_peer_recv:connect(Pid, IP, Port),
   	    ok = etorrent_peer:new(IP, Port, S#state.torrent_id, Pid),
  -	    fill_peers(N-1, S)
  +	    fill_peers(N-1, S#state { num_peers = S#state.num_peers +1})
       end.
   
   %% XXX: This is definitely wrong. But it is as the code is currently
  
positive.code: 		  end, Peers),
      ok.
  
  choke_peers(Pids) ->
      lists:foreach(fun({Pid, _DL, _UL}) ->
  			  etorrent_t_peer_recv:choke(Pid)
  		  end, Pids),
      ok.
  
  
  start_new_peers(IPList, State) ->
      %% Update the PeerList with the new incoming peers
  
negative.code: 
  sort_fastest_downloaders(Peers) ->
      lists:sort(
        fun (P1, P2) ->
  	      P1#peer.downloaded > P2#peer.downloaded
        end,
        Peers).
  
  sort_fastest_uploaders(Peers) ->
      lists:sort(
        fun (P1, P2) ->
  	      P1#peer.uploaded > P2#peer.uploaded
        end,
        Peers).
  
  find_fastest_peers(N, Interested, S) when S#state.mode =:= leeching ->
      etorrent_utils:gsplit(N, sort_fastest_downloaders(Interested));
  find_fastest_peers(N, Interested, S) when S#state.mode =:= seeding ->
      etorrent_utils:gsplit(N, sort_fastest_uploaders(Interested)).
  
  unchoke_peers(Peers) ->
      lists:foreach(fun(P) ->
  