diff --git a/qemu-timer.c b/qemu-timer.c
index 329d3a4..49eac86 100644
--- a/qemu-timer.c
+++ b/qemu-timer.c
@@ -706,14 +706,14 @@ void configure_icount(const char *option)

  void qemu_run_all_timers(void)
  {
+    alarm_timer->pending = 0;
+
      /* rearm timer, if not periodic */
      if (alarm_timer->expired) {
          alarm_timer->expired = 0;
          qemu_rearm_alarm_timer(alarm_timer);
      }

-    alarm_timer->pending = 0;
-
      /* vm time timers */
      if (vm_running) {
          qemu_run_timers(vm_clock);
