diff --git a/seminaries/qtrvsim/uart-echo-irq/uart-echo-irq.S b/seminaries/qtrvsim/uart-echo-irq/uart-echo-irq.S
index 75f531a3a1f2e1b41849f78a8c0fed2ddb93b345..148adf57734291a8c486e5fad5480764d55d3fa8 100644
--- a/seminaries/qtrvsim/uart-echo-irq/uart-echo-irq.S
+++ b/seminaries/qtrvsim/uart-echo-irq/uart-echo-irq.S
@@ -50,6 +50,9 @@
 
 _start: 
         addi    a0, zero, 0x101
+        li      t0, 0x00001800
+        // ensure to stay in machine mode after mret test
+        csrrw   zero, mstatus, t0
         la      t0, skip
         csrrw   zero, mepc, t0
         mret    // test exception ret
@@ -83,8 +86,7 @@ skip:
         addi    t0, zero, 0x0001
         li      a0, SPILED_REG_BASE
 loop:
-        csrrs t1, mepc, zero // check
-        sw      t1, SPILED_REG_LED_LINE_o(a0)
+        sw      t0, SPILED_REG_LED_LINE_o(a0)
         srli    t2, t0, 31
         slli    t0, t0, 1
         or      t0, t0, t2