--- os/connection.c.orig 2007-12-12 23:14:52.787902250 +0100 +++ os/connection.c 2007-12-12 23:16:10.600765250 +0100 @@ -1009,7 +1009,7 @@ do { r = Select (curclient + 1, &tmask, NULL, NULL, ¬ime); } while (r < 0 && (errno == EINTR || errno == EAGAIN)); - if (r < 0) + if (r < 0 && (errno == EBADF)) if (ConnectionTranslation[curclient] > 0) CloseDownClient(clients[ConnectionTranslation[curclient]]); mask &= ~((fd_mask)1 << curoff);