diff -urN linux-test10-pre5-old/arch/i386/kernel/time.c linux/arch/i386/kernel/time.c --- linux-test10-pre5-old/arch/i386/kernel/time.c Wed Oct 25 12:05:22 2000 +++ linux/arch/i386/kernel/time.c Thu Oct 26 15:29:23 2000 @@ -492,6 +492,14 @@ count = inb_p(0x40); /* read the latched count */ count |= inb(0x40) << 8; + + if (count > LATCH-1) { + outb_p(0x34, 0x43); + outb_p(LATCH & 0xff, 0x40); + outb(LATCH >> 8, 0x40); + count = LATCH - 1; + } + spin_unlock(&i8253_lock); count = ((LATCH-1) - count) * TICK_SIZE;