diff -up ntp-4.2.4p7/ntpd/ntp_loopfilter.c.daemonpll ntp-4.2.4p7/ntpd/ntp_loopfilter.c --- ntp-4.2.4p7/ntpd/ntp_loopfilter.c.daemonpll 2009-05-18 18:13:31.000000000 +0200 +++ ntp-4.2.4p7/ntpd/ntp_loopfilter.c 2009-05-18 18:18:13.000000000 +0200 @@ -489,10 +489,9 @@ local_clock( /* * For the PLL the integration interval * (numerator) is the minimum of the update - * interval and poll interval. This allows - * oversampling, but not undersampling. + * interval and Allan intercept. */ - etemp = min(mu, (u_long)ULOGTOD(sys_poll)); + etemp = min(mu, allan_xpt); dtemp = 4 * CLOCK_PLL * ULOGTOD(sys_poll); plladj = fp_offset * etemp / (dtemp * dtemp); rstclock(S_SYNC, peer->epoch, fp_offset); @@ -801,13 +805,10 @@ adj_host_clock( /* * Implement the phase and frequency adjustments. The gain - * factor (denominator) is not allowed to increase beyond the - * Allan intercept. It doesn't make sense to average phase noise - * beyond this point and it helps to damp residual offset at the - * longer poll intervals. + * factor (denominator) increases with poll interval, so is + * dominated by the FLL above the Allan intercept. */ - adjustment = clock_offset / (CLOCK_PLL * min(ULOGTOD(sys_poll), - allan_xpt)); + adjustment = clock_offset / (CLOCK_PLL * ULOGTOD(sys_poll)); clock_offset -= adjustment; adj_systime(adjustment + drift_comp); #endif /* LOCKCLOCK */