anchor.diff:      end.
   
   is_bad_peer_or_ourselves(PeerId, S) ->
  -    case string:equal(PeerId, S#state.our_peer_id) of
  -	true ->
  +    is_ourselves(PeerId, S) or is_bad_peer(PeerId, S).
  +
  +is_ourselves(PeerId, S) ->
  +    string:equal(PeerId, S#state.our_peer_id).
  +
  +is_bad_peer(PeerId, S) ->
  +    case dict:find(PeerId, S#state.bad_peers) of
  +	{ok, [_E]} ->
  +	    false;
  +	{ok, _X} ->
   	    true;
  -	false ->
  -	    case dict:find(PeerId, S#state.bad_peers) of
  -		{ok, [_E]} ->
  -		    false;
  -		{ok, _X} ->
  -		    true;
  -		error ->
  -		    false
  -	    end
  +	error ->
  +	    false
       end.
   
   find_peer_id_in_process_list(PeerId, S) ->
  
positive.code: 
  got_piece_from_peer(Pid, Index) ->
      gen_server:cast(Pid, {got_piece_from_peer, Index}).
  
  %%====================================================================
  %% gen_server callbacks
  
negative.code: %% API
  -export([start_link/4, add_peers/2, uploaded_data/2, downloaded_data/2,
  	peer_interested/1, peer_not_interested/1, peer_choked/1,
  	peer_unchoked/1, got_piece_from_peer/2, new_incoming_peer]).
  
  %% gen_server callbacks
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
  