--- sys/sys/proc.h.orig	Wed Sep 20 06:48:38 2000
+++ sys/sys/proc.h	Wed Sep 20 06:49:04 2000
@@ -515,6 +515,7 @@
 void	remrunqueue __P((struct proc *));
 void	cpu_switch __P((void));
 void	cpu_throw __P((void)) __dead2;
+void	cpu_idle __P((void));
 void	unsleep __P((struct proc *));
 
 void	cpu_exit __P((struct proc *)) __dead2;
--- sys/i386/i386/swtch.s.orig	Wed Sep 20 06:49:54 2000
+++ sys/i386/i386/swtch.s	Wed Sep 20 06:51:33 2000
@@ -81,6 +81,12 @@
 	ret
 
 /*
+ * cpu_idle()
+ */
+ENTRY(cpu_idle)
+	jmp	*_hlt_vector
+
+/*
  * cpu_throw()
  */
 ENTRY(cpu_throw)
--- sys/kern/kern_idle.c.orig	Wed Sep 20 06:41:47 2000
+++ sys/kern/kern_idle.c	Wed Sep 20 06:49:44 2000
@@ -88,6 +88,7 @@
 		 * This is a good place to put things to be done in
 		 * the background, including sanity checks.
 		 */
+			cpu_idle();
 			if (count++ < 0)
 				CTR0(KTR_PROC, "idle_proc: timed out waiting"
 				    " for a process");
