anchor.diff:  	        state_pid = none,
   	        file_system_pid = none}).
   
  +-record(peer_info, {uploaded = 0,
  +		    downloaded = 0,
  +		    interested = false,
  +		    choking = true,
  +
  +		    ip = none,
  +		    port = 0,
  +		    peer_id}).
  +
   -define(MAX_PEER_PROCESSES, 40).
   
   %%====================================================================
  
positive.code: 
  handle_info({'EXIT', Pid, Reason}, S) ->
      % Pid has exited for some reason, handle it accordingly
      D = dict:erase(Pid, S#state.peer_process_dict),
      case Reason of
  	normal ->
  	    {ok, NS} = start_new_peers(S#state{peer_process_dict = D}),
  	    {noreply, NS};
  	shutdown ->
  	    {stop, shutdown, S};
  	R ->
  	    {_, _, PeerId} = dict:fetch(Pid, S#state.peer_process_dict),
  	    Bad = dict:update(PeerId, fun(L) -> [R | L] end,
  			      [R], S#state.bad_peers),
  	    {ok, NS} = start_new_peers(S#state{peer_process_dict = D,
  					       bad_peers = Bad}),
  
negative.code: 	    torrent_peer:connect(Pid, S#state.our_peer_id),
  	    % TODO: Remove this hack:
  	    torrent_peer:unchoke(Pid),
  	    PI = #peer_info{ip = IP, port = Port, peer_id = PeerId},
  	    D = dict:store(Pid, PI, S#state.peer_process_dict),
  	    fill_peers(N-1, S#state{ peer_process_dict = D})
      end.
  
  