anchor.diff:  		  when PeerId == S#state.local_peer_id ->
   		    {stop, normal, S};
   		{ok, _ReservedBytes, PeerId} ->
  -		    ok = enable_socket_messages(Socket),
  -		    {ok, SendPid} =
  -			etorrent_t_peer_send:start_link(Socket,
  -							S#state.file_system_pid,
  -							S#state.torrent_id),
  -		    BF = etorrent_pieces:get_bitfield(S#state.torrent_id),
  -		    etorrent_t_peer_send:bitfield(SendPid, BF),
  -		    {noreply, S#state{tcp_socket = Socket,
  -				      remote_peer_id = PeerId,
  -				      send_pid = SendPid}};
  -		{error, _X} ->
  +		    complete_connection_setup(S#state { tcp_socket = Socket,
  +						        remote_peer_id = PeerId});
  +		{error, X} ->
  +		    error_logger:info_report([handshake_failed, X]),
   		    {stop, normal, S}
   	    end;
   	{error, _Reason} ->
  
positive.code: 	    false
      end.
  
  
negative.code:     etorrent_peer_communication:complete_handshake_header(Socket,
  						 S#state.info_hash,
  						 S#state.local_peer_id),
      complete_connection_setup(S#state { tcp_socket = Socket,
  					remote_peer_id = RemotePeerId });
  handle_cast(choke, S) ->
      etorrent_t_peer_send:choke(S#state.send_pid),
      {noreply, S};
  