diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c
index 2084a640137e663fb8b8affde767b8688a43c40e..604ab5416905cc1539fa285c3e5472df8b9bce89 100644
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -1405,8 +1405,9 @@ static void encode_sb_row(VP9_COMP *cpi, int mi_row,
       MODE_INFO *m = cm->mi + idx_str;
       MODE_INFO *p = cm->prev_mi + idx_str;
 
-      if ((cpi->common.current_video_frame & 1) == 0 || cm->prev_mi == 0 ||
-          cpi->is_src_frame_alt_ref) {
+      if ((cpi->common.current_video_frame & 1) == 0 || cm->prev_mi == 0
+          || cpi->common.show_frame == 0 || cpi->common.frame_type == KEY_FRAME
+          || cpi->is_src_frame_alt_ref) {
         rd_pick_partition(cpi, tp, mi_row, mi_col, BLOCK_SIZE_SB64X64,
                           &dummy_rate, &dummy_dist);
       } else {