anchor.diff:      etorrent_peer_communication:complete_handshake_header(Socket,
   						 S#state.info_hash,
   						 S#state.local_peer_id),
  -    enable_socketorrent_messages(Socket),
  +    enable_socket_messages(Socket),
       {ok, SendPid} =
   	etorrent_t_peer_send:start_link(Socket,
   				     S#state.file_system_pid,
  
positive.code: select_piece_for_queueing(S, N) ->
      true = queue:is_empty(S#state.request_queue),
      case etorrent_t_state:request_new_piece(S#state.state_pid,
  					 S#state.piece_set) of
  	{ok, PieceNum, PieceSize} ->
  	    {ok, Chunks, NumChunks} = chunkify(PieceNum, PieceSize),
  	    {ok, ChunkDict} = build_chunk_dict(Chunks),
  
negative.code: %% Description: Make the socket active and configure it to bittorrent
  %%   specifications.
  %%--------------------------------------------------------------------
  enable_socket_messages(Socket) ->
      inet:setopts(Socket, [binary, {active, true}, {packet, 4}]).
  
  %%--------------------------------------------------------------------
  %% Function: unqueue_all_pieces/1
  %% Description: Unqueue all queued pieces at the other end. We place
  %%   the earlier queued items at the end to compensate for quick
  %%   choke/unchoke problems and live data.
  %%--------------------------------------------------------------------
  unqueue_all_pieces(S) ->
      Requests = sets:to_list(S#state.remote_request_set),
      Q = S#state.request_queue,
      NQ = queue:join(Q, queue:from_list(Requests)),
      S#state{remote_request_set = sets:new(),
  	     request_queue = NQ}.
  
  