diff -ru xenomai-2.0.1/arch/i386/hal/x86.c xenomai-2.0.1-gryphon/arch/i386/hal/x86.c
--- xenomai-2.0.1/arch/i386/hal/x86.c	2005-10-08 08:01:07.000000000 -0800
+++ xenomai-2.0.1-gryphon/arch/i386/hal/x86.c	2006-03-15 13:51:05.000000000 -0900
@@ -67,6 +67,8 @@
 
 extern struct desc_struct idt_table[];
 
+#define PIT_CH1	0x41
+
 #ifdef CONFIG_X86_LOCAL_APIC
 
 static long long rthal_timers_sync_time;
@@ -388,7 +390,7 @@
 
 static rthal_time_t rthal_tsc_8254;
 
-static int rthal_last_8254_counter2;
+static int rthal_last_8254_counter1;
 
 /* TSC emulation using PIT channel #2. */
 
@@ -403,13 +405,13 @@
     outb_p(0x0,PIT_MODE);
     count = inb_p(PIT_CH0);
     count |= inb_p(PIT_CH0) << 8;
-    outb_p(0xb4,PIT_MODE);
-    outb_p(RTHAL_8254_COUNT2LATCH & 0xff,PIT_CH2);
-    outb_p(RTHAL_8254_COUNT2LATCH >> 8,PIT_CH2);
+    outb_p(0x74,PIT_MODE);
+    outb_p(RTHAL_8254_COUNT2LATCH & 0xff,PIT_CH1);
+    outb_p(RTHAL_8254_COUNT2LATCH >> 8,PIT_CH1);
     rthal_tsc_8254 = count + LATCH * jiffies;
-    rthal_last_8254_counter2 = 0; 
+    rthal_last_8254_counter1 = 0; 
     /* Gate high, disable speaker */
-    outb_p((inb_p(0x61)&~0x2)|1,0x61);
+ /*   outb_p((inb_p(0x61)&~0x2)|1,0x61); */
 
     rthal_local_irq_restore_hw(flags);
 }
@@ -423,10 +425,11 @@
 
     rthal_local_irq_save_hw(flags);
 
-    outb(0xd8,PIT_MODE);
-    count = inb(PIT_CH2);
-    delta = rthal_last_8254_counter2 - (count |= (inb(PIT_CH2) << 8));
-    rthal_last_8254_counter2 = count;
+    outb(0xd4,PIT_MODE);
+//    outb_p(0x40,PIT_MODE);
+    count = inb_p(PIT_CH1);
+    delta = rthal_last_8254_counter1 - (count |= (inb_p(PIT_CH1) << 8));
+    rthal_last_8254_counter1 = count;
     rthal_tsc_8254 += (delta > 0 ? delta : delta + RTHAL_8254_COUNT2LATCH);
     t = rthal_tsc_8254;
 
