diff --git a/src/scoreboard.sv b/src/scoreboard.sv
index 0f73faf2692b8684eab159bebcb22c70d8eee0f0..eb54630651b244a5a0550e5347606ea2e30adab2 100644
--- a/src/scoreboard.sv
+++ b/src/scoreboard.sv
@@ -150,18 +150,18 @@ module scoreboard #(
         if (mem_q[i].pending) begin
           mem_n[i].pending = 1'b0;
           mem_n[i].issued = 1'b0;
+          mem_n[i].sbe.valid = 1'b0;
           flushed[i] = 1'b1;
         end
       end
-    end
-
-    // ------------
-    // FU NONE
-    // ------------
-    for (int unsigned i = 0; i < NR_ENTRIES; i++) begin
+    end else if (mem_q[issue_pointer_q].sbe.fu == ariane_pkg::NONE &&
+                 mem_q[issue_pointer_q].issued &&
+                 ~mem_q[issue_pointer_q].pending) begin
+      // ------------
+      // FU NONE
+      // ------------
       // The FU is NONE -> this instruction is valid immediately
-      if (mem_q[i].sbe.fu == ariane_pkg::NONE && mem_q[i].issued && ~mem_q[i].pending)
-        mem_n[i].sbe.valid = 1'b1;
+      mem_n[issue_pointer_q].sbe.valid = 1'b1;
     end
 
     // ------------