diff -Nur ntp-4.2.0/ntpd/ntp_io.c ntp-4.2.0-errno-fix/ntpd/ntp_io.c --- ntp-4.2.0/ntpd/ntp_io.c 2003-10-07 23:10:39.000000000 +0200 +++ ntp-4.2.0-errno-fix/ntpd/ntp_io.c 2005-05-06 03:19:47.016523699 +0200 @@ -1757,16 +1757,16 @@ sizeof(rb->recv_space), 0, (struct sockaddr *)&rb->recv_srcadr, &fromlen); - if (rb->recv_length == 0 + if (rb->recv_length == 0 || rb->recv_length == -1 && (0 #ifdef EWOULDBLOCK || errno==EWOULDBLOCK #endif #ifdef EAGAIN || errno==EAGAIN #endif - ) { + )) { freerecvbuf(rb); - continue; + continue; } else if (rb->recv_length < 0) {