diff --git a/src/frontend/frontend.sv b/src/frontend/frontend.sv
index d0f7b5ca4e9119c53da0d7442e4e0fb8610487a0..018573b4d5044e8bdfb83cd4497a42c9628367a7 100644
--- a/src/frontend/frontend.sv
+++ b/src/frontend/frontend.sv
@@ -380,14 +380,15 @@ module frontend import ariane_pkg::*; #(
     ) i_ras (
       .clk_i,
       .rst_ni,
-      .flush_i      ( flush_bp_i         ),
-      .push_i       ( ras_push           ),
-      .pop_i        ( ras_pop            ),
-      .data_i       ( ras_update         ),
-      .begin_spec_i ( begin_spec_o       ),
-      .valid_spec_i ( is_correct_predict ),
-      .bad_spec_i   ( is_mispredict      ),
-      .data_o       ( ras_predict        )
+      .flush_i         ( flush_bp_i                  ),
+      .push_i          ( ras_push                    ),
+      .pop_i           ( ras_pop                     ),
+      .data_i          ( ras_update                  ),
+      .begin_spec_i    ( begin_spec_o                ),
+      .valid_spec_i    ( is_correct_predict          ),
+      .bad_spec_i      ( is_mispredict               ),
+      .resolved_type_i ( resolved_branch_i.cf_type   ),
+      .data_o          ( ras_predict                 )
     );
 
     btb #(
diff --git a/src/frontend/sras.sv b/src/frontend/sras.sv
index e5f7f8b618f1cc61f31af7e8ea53113b84e6c0db..a1ca55878e698bdb36b491a1bbc9cda3f22767db 100644
--- a/src/frontend/sras.sv
+++ b/src/frontend/sras.sv
@@ -28,6 +28,7 @@ module sras #(
     input  logic             begin_spec_i,
     input  logic             valid_spec_i,
     input  logic             bad_spec_i,
+    input  ariane_pkg::cf_t  resolved_type_i,
     output ariane_pkg::ras_t data_o
 );
 
@@ -68,12 +69,16 @@ module sras #(
                     ovf_counter_d[ptr_spec_q] = ovf_counter_q[ptr_spec_q] + 1'b1;
                 end
             end else if (!push_i && pop_i) begin
-                if (ovf_counter_q[ptr_spec_q] != '0) begin
+                if (ovf_counter_q[ptr_spec_q] == '0) begin
+                    ovf_counter_d[ptr_spec_d] = '0; // ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q];
+                end else begin
                     ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] - 1'b1;
                 end
             end else if (begin_spec_i) begin
                 ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q];
             end
+        end else if (bad_spec_i && resolved_type_i == ariane_pkg::Return && ovf_counter_q[ptr_spec_q] != '0) begin
+            ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] - 1'b1;
         end
     end