diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c
index 1e5890cda07b6d7e60371104453422d74ae8079c..4939e698a9b328317a043fe166ccc2c3524607b5 100644
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -1377,6 +1377,7 @@ static void copy_partitioning(VP9_COMMON *cm, MODE_INFO **mi_8x8,
     for (block_col = 0; block_col < 8; ++block_col) {
       MODE_INFO *const prev_mi = prev_mi_8x8[block_row * mis + block_col];
       const BLOCK_SIZE sb_type = prev_mi ? prev_mi->mbmi.sb_type : 0;
+
       if (prev_mi) {
         const ptrdiff_t offset = prev_mi - cm->prev_mi;
         mi_8x8[block_row * mis + block_col] = cm->mi + offset;
diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c
index 0808ec4897e454dae79c6a111a803d7848de6813..f112fa24f144dbb30c8e3720e2d111c8ebcd1507 100644
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -2673,6 +2673,8 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
   vp9_write_yuv_frame(cpi->Source);
 #endif
 
+  set_speed_features(cpi);
+
   // Decide q and q bounds.
   q = vp9_rc_pick_q_and_bounds(cpi, &bottom_index, &top_index);
 
@@ -2682,8 +2684,6 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
     set_high_precision_mv(cpi, q < HIGH_PRECISION_MV_QTHRESH);
   }
 
-  set_speed_features(cpi);
-
   if (cpi->sf.recode_loop == DISALLOW_RECODE) {
     encode_without_recode_loop(cpi, size, dest, q);
   } else {
diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c
index c62d31293cd8679075941eaa3bab6e530d59b9e3..3c8baad79183f205b80f2a559db33cce7bed9099 100644
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -985,6 +985,9 @@ int vp9_rc_pick_q_and_bounds(const VP9_COMP *cpi,
       q /= 3;
     if (q == 0)
       q++;
+    if (cpi->sf.partition_check == 1)
+      q -= 10;
+
     if (q < *bottom_index)
       *bottom_index = q;
     else if (q > *top_index)