diff --git a/bochs/cpu/event.cc b/bochs/cpu/event.cc index 46fb86aeb..5adfb24af 100644 --- a/bochs/cpu/event.cc +++ b/bochs/cpu/event.cc @@ -379,7 +379,7 @@ void BX_CPU_C::inhibit_interrupts(unsigned mask) { // Loading of SS disables interrupts until the next instruction completes // but only under assumption that previous instruction didn't load SS also. - if (! interrupts_inhibited(BX_INHIBIT_INTERRUPTS_BY_MOVSS)) { + if (mask != BX_INHIBIT_INTERRUPTS_BY_MOVSS || ! interrupts_inhibited(BX_INHIBIT_INTERRUPTS_BY_MOVSS)) { BX_DEBUG(("inhibit interrupts mask = %d", mask)); BX_CPU_THIS_PTR inhibit_mask = mask; BX_CPU_THIS_PTR inhibit_icount = get_icount() + 1; // inhibit for next instruction