diff --git a/hw/esp.c b/hw/esp.c
index fa9d2a2..90bfdc6 100644
--- a/hw/esp.c
+++ b/hw/esp.c
@@ -525,9 +525,9 @@ static uint32_t esp_mem_readb(void *opaque, target_phys_addr_t addr)
            except TC */
         old_val = s->rregs[ESP_RINTR];
         s->rregs[ESP_RINTR] = 0;
-        s->rregs[ESP_RSTAT] &= ~STAT_TC;
         s->rregs[ESP_RSEQ] = SEQ_CD;
         esp_lower_irq(s);
+        s->rregs[ESP_RSTAT] &= STAT_TC  STAT_MI;
 
         return old_val;
     default:
