diff --git a/sys/i386/isa/psm.c b/sys/i386/isa/psm.c
index b4b8ee87dc45..2dcd7c5d1b12 100644
--- a/sys/i386/isa/psm.c
+++ b/sys/i386/isa/psm.c
@@ -60,6 +60,7 @@
 #endif /*DEVFS*/
 
 #include <machine/mouse.h>
+#include <machine/clock.h>
 
 #include <i386/isa/isa_device.h>
 
@@ -75,7 +76,7 @@
 #define	PSM_INT_DISABLE	0x65	/* disable controller interrupts */
 #define	PSM_DISABLE	0xa7	/* disable auxiliary port */
 #define	PSM_ENABLE	0xa8	/* enable auxiliary port */
-#define	PSM_ENABLE	0xa9	/* test auxiliary port */
+#define	PSM_AUX_TEST	0xa9	/* test auxiliary port */
 
 /* mouse commands */
 #define PSM_SET_SCALE11	0xe6	/* set 1:1 scaling */
@@ -187,6 +188,7 @@ psmprobe(struct isa_device *dvp)
 
 	ioport=dvp->id_iobase;
 	unit=dvp->id_unit;
+
 #ifndef PSM_NO_RESET
 	psm_write_dev(ioport, PSM_RESET);	/* Reset aux device */
 #endif
@@ -302,8 +304,11 @@ psm_poll_status(int ioport)
 	u_char c;
 
 	while(c = inb(ioport+PSM_STATUS) & 0x03)
-		if(c & PSM_OUTPUT_ACK == PSM_OUTPUT_ACK)
+		if(c & PSM_OUTPUT_ACK == PSM_OUTPUT_ACK) {
+			/* XXX - Avoids some keyboard hangs during probe */
+			DELAY(6);
 			inb(ioport+PSM_DATA);
+	}
 	return;
 }