diff --git a/libraries/base/diag/src/vhdl/diag_block_gen.vhd b/libraries/base/diag/src/vhdl/diag_block_gen.vhd
index 5275ee4ef79417fc791dbda3fc25dd99a39556e6..19ce2407349bdaaa9cc84bbd556a2062873efe4d 100644
--- a/libraries/base/diag/src/vhdl/diag_block_gen.vhd
+++ b/libraries/base/diag/src/vhdl/diag_block_gen.vhd
@@ -216,11 +216,10 @@ begin
             if v.eop = '1' and r.blk_en = '0' then
               v.state := s_idle;          -- accept disable after eop, not during block
             end if;
-            if v.eop = '1' then
-              v.blk_xon := xon_reg;  -- accept XOFF after eop, not during block
-            end if;
-          
           end if;  -- out_siso.ready='1'
+          if r.eop = '1' then
+            v.blk_xon := xon_reg;  -- accept XOFF after eop, not during block
+          end if;
 
         when s_gap => 
           if r.samples_cnt >= v_gapsize-1 and r.blocks_cnt >= v_blocks_per_sync-1 then