diff --git a/test/datarate_test.cc b/test/datarate_test.cc
index 8f7cc7a373d4ba80d4b2c23e2f6f887ee628b2e5..1b921f0a16effafd4ca6d89cefe1a2bb48389f31 100644
--- a/test/datarate_test.cc
+++ b/test/datarate_test.cc
@@ -580,8 +580,8 @@ VP8_INSTANTIATE_TEST_CASE(DatarateTestLarge, ALL_TEST_MODES);
 VP9_INSTANTIATE_TEST_CASE(DatarateTestVP9Large,
                           ::testing::Values(::libvpx_test::kOnePassGood,
                           ::libvpx_test::kRealTime),
-                          ::testing::Range(2, 6));
-// TODO(marpan): Speed 6 and 7 fails on one of these tests, for
-// real-time mode. So for now test up to speed 5, and start at 2
+                          ::testing::Range(2, 5));
+// TODO(marpan): Speed 5 to 7 fails on one of these tests, for
+// real-time mode. So for now test up to speed 4, and start at 2
 // (since speed 0 and 1 are slow). Enable more speeds when issue is fixed.
 }  // namespace
diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c
index ef5349733edb506d475152333e1f027a19e9f61d..0808ec4897e454dae79c6a111a803d7848de6813 100644
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -40,6 +40,7 @@
 #include "vp9/encoder/vp9_ratectrl.h"
 #include "vp9/encoder/vp9_rdopt.h"
 #include "vp9/encoder/vp9_segmentation.h"
+#include "vp9/encoder/vp9_speed_features.h"
 #include "vp9/encoder/vp9_temporal_filter.h"
 #include "vp9/encoder/vp9_resize.h"
 #include "vp9/encoder/vp9_svc_layercontext.h"
diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c
index fd89d3304a3ef9fccea29e62e32f80ae13b1fff0..f090350775f747b838979111aad0674717341367 100644
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -207,15 +207,6 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
   }
   if (speed >= 3) {
     sf->use_square_partition_only = 1;
-    if (MIN(cm->width, cm->height) >= 720)
-      sf->disable_split_mask = DISABLE_ALL_SPLIT;
-    else
-      sf->disable_split_mask = DISABLE_ALL_INTER_SPLIT;
-
-    sf->mode_search_skip_flags = FLAG_SKIP_INTRA_DIRMISMATCH
-        | FLAG_SKIP_INTRA_BESTINTER | FLAG_SKIP_COMP_BESTINTRA
-        | FLAG_SKIP_INTRA_LOWVAR;
-
     sf->disable_filter_search_var_thresh = 100;
     sf->use_lastframe_partitioning = LAST_FRAME_PARTITION_ALL;
     sf->use_uv_intra_rd_estimate = 1;
@@ -224,16 +215,13 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
     sf->use_fast_coef_updates = 2;
     sf->adaptive_rd_thresh = 4;
     sf->mode_skip_start = 6;
-    sf->encode_breakout_thresh = 400;
     sf->allow_skip_recode = 0;
-  }
-  if (speed >= 4) {
     sf->optimize_coefficients = 0;
     sf->disable_split_mask = DISABLE_ALL_SPLIT;
     sf->lpf_pick = LPF_PICK_FROM_Q;
     sf->encode_breakout_thresh = 700;
   }
-  if (speed >= 5) {
+  if (speed >= 4) {
     int i;
     sf->last_partitioning_redo_frequency = 4;
     sf->adaptive_rd_thresh = 5;
@@ -258,7 +246,7 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
     sf->max_intra_bsize = BLOCK_32X32;
     sf->allow_skip_recode = 1;
   }
-  if (speed >= 6) {
+  if (speed >= 5) {
     sf->max_partition_size = BLOCK_32X32;
     sf->min_partition_size = BLOCK_8X8;
     sf->partition_check =
@@ -268,12 +256,12 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
     sf->search_method = FAST_DIAMOND;
     sf->allow_skip_recode = 0;
   }
-  if (speed >= 7) {
+  if (speed >= 6) {
     sf->partition_search_type = VAR_BASED_FIXED_PARTITION;
     sf->use_nonrd_pick_mode = 1;
     sf->search_method = FAST_DIAMOND;
   }
-  if (speed >= 8) {
+  if (speed >= 7) {
     int i;
     for (i = 0; i < BLOCK_SIZES; ++i)
       sf->disable_inter_mode_mask[i] = 14;    // only search NEARESTMV (0)