Скорее всего - у тебя это происходит из-за того что супер классные делфи-кодеры из компании Borland в своих классах Socket намутили чтото с асинхронными неблокирующими сокетами, возможно не использована select(). Используй обычный интерфейс WinSocket и у тебя все будет нормально (ну насчет в делфи незнаю, но по нормальному все должно быть ок))
Delphi кодеры тут не причём, просто Bill наверно перевёл свой сокет в блокирующий режим ...
2 Bill: Убедись что ClientType у TClientSocket'а == ctNonBlocking.
-