public override void Choke(PeerId id)
{
base.Choke(id);
advertisedPieces.RemoveAll(delegate(SeededPiece p) { return p.Peer == id; });
// Place the peer at the end of the list so the rest of the peers
// will get an opportunity to unchoke before this peer gets tried again
ChokeData data = peers.Find(delegate(ChokeData d) { return d.Peer == id; });
peers.Remove(data);
peers.Add(data);
}