This code was derived from BitTorrent 3.4.2