diff -uNr xen-unstable.hg-orig/xen/arch/x86/hvm/rtc.c xen-unstable.hg-rtcfix/xen/arch/x86/hvm/rtc.c --- xen-unstable.hg-orig/xen/arch/x86/hvm/rtc.c 2007-11-15 10:38:18.000000000 -0800 +++ xen-unstable.hg-rtcfix/xen/arch/x86/hvm/rtc.c 2007-11-15 12:48:13.000000000 -0800 @@ -128,7 +128,6 @@ { /* set mode: reset UIP mode */ s->hw.cmos_data[RTC_REG_A] &= ~RTC_UIP; - data &= ~RTC_UIE; } else { @@ -350,7 +349,7 @@ } /* update ended interrupt */ - if ( s->hw.cmos_data[RTC_REG_B] & RTC_UIE ) + if ( ( s->hw.cmos_data[RTC_REG_B] & RTC_UIE ) && !(s->hw.cmos_data[RTC_REG_B] & RTC_SET) ) { s->hw.cmos_data[RTC_REG_C] |= 0x90; hvm_isa_irq_deassert(d, RTC_IRQ);