diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c
index ea2db633128428914625d86ae7952ecb6d2d9d09..b28939120c9be35d325f49d7ccfc39cf62f6cfd8 100644
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -2693,7 +2693,6 @@ static void encode_with_recode_loop(VP9_COMP *cpi,
   int loop = 0;
   int overshoot_seen = 0;
   int undershoot_seen = 0;
-  int active_worst_qchanged = 0;
   int q_low = bottom_index, q_high = top_index;
   do {
     vp9_clear_system_state();  // __asm emms;
@@ -2745,7 +2744,6 @@ static void encode_with_recode_loop(VP9_COMP *cpi,
 
     if (frame_over_shoot_limit == 0)
       frame_over_shoot_limit = 1;
-    active_worst_qchanged = 0;
 
     if (cpi->oxcf.end_usage == USAGE_CONSTANT_QUALITY) {
       loop = 0;
@@ -2806,16 +2804,12 @@ static void encode_with_recode_loop(VP9_COMP *cpi,
 
           if (undershoot_seen || loop_count > 1) {
             // Update rate_correction_factor unless
-            // cpi->rc.active_worst_quality has changed.
-            if (!active_worst_qchanged)
-              vp9_update_rate_correction_factors(cpi, 1);
+            vp9_update_rate_correction_factors(cpi, 1);
 
             q = (q_high + q_low + 1) / 2;
           } else {
             // Update rate_correction_factor unless
-            // cpi->rc.active_worst_quality has changed.
-            if (!active_worst_qchanged)
-              vp9_update_rate_correction_factors(cpi, 0);
+            vp9_update_rate_correction_factors(cpi, 0);
 
             q = vp9_regulate_q(cpi, cpi->rc.this_frame_target);
 
@@ -2834,15 +2828,13 @@ static void encode_with_recode_loop(VP9_COMP *cpi,
           if (overshoot_seen || loop_count > 1) {
             // Update rate_correction_factor unless
             // cpi->rc.active_worst_quality has changed.
-            if (!active_worst_qchanged)
-              vp9_update_rate_correction_factors(cpi, 1);
+            vp9_update_rate_correction_factors(cpi, 1);
 
             q = (q_high + q_low) / 2;
           } else {
             // Update rate_correction_factor unless
             // cpi->rc.active_worst_quality has changed.
-            if (!active_worst_qchanged)
-              vp9_update_rate_correction_factors(cpi, 0);
+            vp9_update_rate_correction_factors(cpi, 0);
 
             q = vp9_regulate_q(cpi, cpi->rc.this_frame_target);
 
@@ -2884,7 +2876,6 @@ static void encode_with_recode_loop(VP9_COMP *cpi,
 #endif
     }
   } while (loop);
-  cpi->rc.active_worst_qchanged = active_worst_qchanged;
 }
 
 static void encode_frame_to_data_rate(VP9_COMP *cpi,
@@ -3167,9 +3158,9 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
   cpi->rc.projected_frame_size = (*size) << 3;
 
   // Post encode loop adjustment of Q prediction.
-  if (!cpi->rc.active_worst_qchanged)
-    vp9_update_rate_correction_factors(cpi, (cpi->sf.recode_loop ||
-        cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) ? 2 : 0);
+  vp9_update_rate_correction_factors(
+      cpi, (cpi->sf.recode_loop ||
+            cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) ? 2 : 0);
 
 
   cpi->rc.last_q[cm->frame_type] = cm->base_qindex;
diff --git a/vp9/encoder/vp9_onyx_int.h b/vp9/encoder/vp9_onyx_int.h
index 2774d951debd68a8267e3c04ccd423e25a2ef8eb..03002ef4b12870f52cf46b3891470f9210306534 100644
--- a/vp9/encoder/vp9_onyx_int.h
+++ b/vp9/encoder/vp9_onyx_int.h
@@ -340,7 +340,6 @@ typedef struct {
   int active_worst_quality;
   int best_quality;
   int active_best_quality;
-  int active_worst_qchanged;
 } RATE_CONTROL;
 
 typedef struct VP9_COMP {
diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c
index 6e4c56c1a22e0b1ee353c6320802985755edf089..1cb77536330a03c8a6e8a3331d52f0f7635ba4f8 100644
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -390,7 +390,7 @@ void vp9_update_rate_correction_factors(VP9_COMP *cpi, int damp_var) {
 }
 
 
-int vp9_regulate_q(VP9_COMP *cpi, int target_bits_per_frame) {
+int vp9_regulate_q(const VP9_COMP *cpi, int target_bits_per_frame) {
   int q = cpi->rc.active_worst_quality;
 
   int i;
diff --git a/vp9/encoder/vp9_ratectrl.h b/vp9/encoder/vp9_ratectrl.h
index 57dcd3f154841ca9f1d1a0b37383b599cb422591..13357447ad27b59f06cd1a9953983885da9c8dc3 100644
--- a/vp9/encoder/vp9_ratectrl.h
+++ b/vp9/encoder/vp9_ratectrl.h
@@ -21,7 +21,7 @@ void vp9_restore_coding_context(VP9_COMP *cpi);
 
 void vp9_setup_key_frame(VP9_COMP *cpi);
 void vp9_update_rate_correction_factors(VP9_COMP *cpi, int damp_var);
-int vp9_regulate_q(VP9_COMP *cpi, int target_bits_per_frame);
+int vp9_regulate_q(const VP9_COMP *cpi, int target_bits_per_frame);
 void vp9_adjust_key_frame_context(VP9_COMP *cpi);
 void vp9_compute_frame_size_bounds(VP9_COMP *cpi,
                                    int *frame_under_shoot_limit,