There's at least one leak caused by circular references held by the ClientSocket class, incidentally. Continue reading...