Suggestion for the lazy bitfield changes: make it send HAVEs if the peer isn't interested. Preferably not all at the same time, say 1 every 0.5 seconds until the peer is interested. I just watched a peer get stuck at 99.8% and stop requesting pieces. EDIT: Another thought, IMHO µTorrent shouldn't use lazy bitfield over encrypted connections, it's not necessary.