fixed interrupt handler