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 */