diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c
index a044f8cb98bcfe05625b2f0d768ca6776f002e50..ec3e1602c16e8e0d1dbfccb24442ba53c109f274 100644
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -1288,11 +1288,13 @@ void vp8_encode_frame(VP8_COMP *cpi)
         else
             frame_type = 2;
 
-        if (cpi->rd_prediction_type_threshes[frame_type][1] >
-                cpi->rd_prediction_type_threshes[frame_type][0] &&
-            cpi->rd_prediction_type_threshes[frame_type][1] >
-                cpi->rd_prediction_type_threshes[frame_type][2] &&
-            check_dual_ref_flags(cpi))
+        if (frame_type == 3)
+            pred_type = SINGLE_PREDICTION_ONLY;
+        else if (cpi->rd_prediction_type_threshes[frame_type][1] >
+                    cpi->rd_prediction_type_threshes[frame_type][0] &&
+                 cpi->rd_prediction_type_threshes[frame_type][1] >
+                    cpi->rd_prediction_type_threshes[frame_type][2] &&
+                 check_dual_ref_flags(cpi))
             pred_type = COMP_PREDICTION_ONLY;
         else if (cpi->rd_prediction_type_threshes[frame_type][0] >
                     cpi->rd_prediction_type_threshes[frame_type][1] &&