anchor.diff:      etorrent_peer_send:not_interested(SendPid),
       ok.
   
  -peer_have(PN, #state { piece_set = unknown } = S) ->
  -    peer_have(PN, S#state {piece_set = gb_sets:new()});
  +peer_have(PN, #state{piece_set=unknown}=State) ->
  +    #state{torrent_id=TorrentID} = State,
  +    {value, NumPieces} = etorrent_torrent:num_pieces(TorrentID),
  +    Pieceset = etorrent_pieceset:new(NumPieces),
  +    NewState = State#state{piece_set=Pieceset},
  +    peer_have(PN, NewState);
   peer_have(PN, S) ->
       case etorrent_piece_mgr:valid(S#state.torrent_id, PN) of
           true ->
  
positive.code: 
                   remote_request_set = gb_sets:empty() :: gb_set(),
  
                   piece_set = unknown          :: unknown | gb_set(),
  
  		 %% Are we in endgame mode?
                   endgame = false              :: boolean(),
  
negative.code:          terminate/2, code_change/3]).
  -export([format_status/2]).
  
  -type pieceset() :: etorrent_pieceset:pieceset().
  
  -record(state, { remote_peer_id = none,
                   local_peer_id = none,
                   info_hash = none,
  
  		 extended_messaging = false, % Peer support extended messages
                   fast_extension = false, % Peer uses fast extension
  
  		 %% Peer support extended messages
  		 extended_messaging = false   :: boolean(),
  