ok,
It seems that correct way would be to remove this._socket.Available == 0 test.
Since it's completly legal to either have data or not at a time of checking socket.
So can you remove that test and see if it works and let me know.
If it works, then I guess I will remove that test from there.
Thanks,
Oleg