diff -up ntp-4.2.4p4/ntpd/cmd_args.c.kernel ntp-4.2.4p4/ntpd/cmd_args.c --- ntp-4.2.4p4/ntpd/cmd_args.c.kernel 2007-08-18 22:24:43.000000000 +0200 +++ ntp-4.2.4p4/ntpd/cmd_args.c 2008-02-27 16:57:56.000000000 +0100 @@ -179,8 +179,10 @@ getCmdOpts( } while (--ct > 0); } - if (HAVE_OPT( SLEW )) + if (HAVE_OPT( SLEW )) { clock_max = 600; + kern_enable = 0; + } if (HAVE_OPT( UPDATEINTERVAL )) { long val = OPT_VALUE_UPDATEINTERVAL; diff -up ntp-4.2.4p4/ntpd/ntp_loopfilter.c.kernel ntp-4.2.4p4/ntpd/ntp_loopfilter.c --- ntp-4.2.4p4/ntpd/ntp_loopfilter.c.kernel 2007-02-24 12:02:05.000000000 +0100 +++ ntp-4.2.4p4/ntpd/ntp_loopfilter.c 2008-02-27 16:57:56.000000000 +0100 @@ -337,8 +337,6 @@ local_clock( */ clock_frequency = flladj = plladj = 0; mu = peer->epoch - sys_clocktime; - if (clock_max == 0 || clock_max > 0.5) - kern_enable = 0; rval = 1; if (fabs(fp_offset) > clock_max && clock_max > 0) { switch (state) { @@ -893,9 +891,9 @@ loop_config( pll_control = 1; memset(&ntv, 0, sizeof(ntv)); #ifdef STA_NANO - ntv.modes = MOD_BITS | MOD_NANO; + ntv.modes = MOD_BITS | MOD_FREQUENCY | MOD_NANO; #else /* STA_NANO */ - ntv.modes = MOD_BITS; + ntv.modes = MOD_BITS | MOD_FREQUENCY; #endif /* STA_NANO */ ntv.maxerror = MAXDISPERSE; ntv.esterror = MAXDISPERSE; @@ -1001,6 +999,8 @@ loop_config( */ case LOOP_MAX: /* step threshold */ clock_max = freq; + if (clock_max == 0 || clock_max > 0.5) + kern_enable = 0; break; case LOOP_PANIC: /* panic threshold */