diff -up ntp-4.2.6p3/ntpdate/ntpdate.c.ntpdaterecv ntp-4.2.6p3/ntpdate/ntpdate.c --- ntp-4.2.6p3/ntpdate/ntpdate.c.ntpdaterecv 2010-11-25 15:18:01.669483673 +0100 +++ ntp-4.2.6p3/ntpdate/ntpdate.c 2010-11-25 15:18:01.720485666 +0100 @@ -1042,6 +1042,17 @@ receive( * Shift this data in, then schedule another transmit. */ server_data(server, (s_fp) di, &ci, 0); + + if ((int)server->filter_nextpt >= sys_samples) { + /* + * Got all the data we need. Mark this guy + * completed and return. + */ + server->event_time = 0; + complete_servers++; + return; + } + server->event_time = current_time + sys_timeout; }