diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c
index 6236696..55000ea 100644
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -1395,23 +1395,7 @@
         cpi->rd_prediction_type_threshes[frame_type][2] += hybrid_diff;
         cpi->rd_prediction_type_threshes[frame_type][2] >>= 1;
 
-        /* FIXME make "100" (the threshold at which to re-encode the
-         * current frame) a commandline option. */
-        if (cpi->common.dual_pred_mode == SINGLE_PREDICTION_ONLY &&
-            (dual_diff >= 100 || hybrid_diff >= 100))
-        {
-            redo = 1;
-            cpi->common.dual_pred_mode = cpi->rd_dual_diff > cpi->rd_hybrid_diff ?
-                        DUAL_PREDICTION_ONLY : HYBRID_PREDICTION;
-        }
-        else if (cpi->common.dual_pred_mode == DUAL_PREDICTION_ONLY &&
-                 (single_diff >= 100 || hybrid_diff >= 100))
-        {
-            redo = 1;
-            cpi->common.dual_pred_mode = cpi->rd_single_diff > cpi->rd_hybrid_diff ?
-                        SINGLE_PREDICTION_ONLY : HYBRID_PREDICTION;
-        }
-        else if (cpi->common.dual_pred_mode == HYBRID_PREDICTION)
+        if (cpi->common.dual_pred_mode == HYBRID_PREDICTION)
         {
             int single_count_zero = 0;
             int dual_count_zero = 0;
@@ -1431,39 +1415,6 @@
             {
                 cpi->common.dual_pred_mode = DUAL_PREDICTION_ONLY;
             }
-            else if (single_diff >= 100 || dual_diff >= 100)
-            {
-                redo = 1;
-                cpi->common.dual_pred_mode = cpi->rd_single_diff > cpi->rd_dual_diff ?
-                            SINGLE_PREDICTION_ONLY : DUAL_PREDICTION_ONLY;
-            }
-        }
-
-        if (redo)
-        {
-            encode_frame_internal(cpi);
-
-            if (cpi->common.dual_pred_mode == HYBRID_PREDICTION)
-            {
-                int single_count_zero = 0;
-                int dual_count_zero = 0;
-                int i;
-
-                for ( i = 0; i < DUAL_PRED_CONTEXTS; i++ )
-                {
-                    single_count_zero += cpi->single_pred_count[i];
-                    dual_count_zero += cpi->dual_pred_count[i];
-                }
-
-                if (dual_count_zero == 0)
-                {
-                    cpi->common.dual_pred_mode = SINGLE_PREDICTION_ONLY;
-                }
-                else if (single_count_zero == 0)
-                {
-                    cpi->common.dual_pred_mode = DUAL_PREDICTION_ONLY;
-                }
-            }
         }
     }
     else
