diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 3a8e5fe..20a8735 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1723,48 +1723,6 @@
                      xd->ref_mv_stack[ref_frame], compound_inter_mode_ctx,
                      ref_mvs[ref_frame], mi_row, mi_col, fpm_sync, (void *)pbi,
                      inter_mode_ctx);
-
-    if (xd->ref_mv_count[ref_frame] < 2) {
-      MV_REFERENCE_FRAME rf[2];
-      int_mv zeromv[2];
-      av1_set_ref_frame(rf, ref_frame);
-      zeromv[0].as_int = gm_get_motion_vector(&cm->global_motion[rf[0]],
-                                              cm->allow_high_precision_mv,
-                                              bsize, mi_col, mi_row
-#if CONFIG_AMVR
-                                              ,
-                                              cm->cur_frame_force_integer_mv
-#endif
-                                              )
-                             .as_int;
-      zeromv[1].as_int =
-          (rf[1] != NONE_FRAME)
-              ? gm_get_motion_vector(&cm->global_motion[rf[1]],
-                                     cm->allow_high_precision_mv, bsize, mi_col,
-                                     mi_row
-#if CONFIG_AMVR
-                                     ,
-                                     cm->cur_frame_force_integer_mv
-#endif
-                                     )
-                    .as_int
-              : 0;
-      for (int ref = 0; ref < 2; ++ref) {
-        if (rf[ref] == NONE_FRAME) continue;
-#if CONFIG_AMVR
-        lower_mv_precision(&ref_mvs[rf[ref]][0].as_mv, allow_hp,
-                           cm->cur_frame_force_integer_mv);
-        lower_mv_precision(&ref_mvs[rf[ref]][1].as_mv, allow_hp,
-                           cm->cur_frame_force_integer_mv);
-#else
-        lower_mv_precision(&ref_mvs[rf[ref]][0].as_mv, allow_hp);
-        lower_mv_precision(&ref_mvs[rf[ref]][1].as_mv, allow_hp);
-#endif
-        if (ref_mvs[rf[ref]][0].as_int != zeromv[ref].as_int ||
-            ref_mvs[rf[ref]][1].as_int != zeromv[ref].as_int)
-          inter_mode_ctx[ref_frame] &= ~(1 << ALL_ZERO_FLAG_OFFSET);
-      }
-    }
   }
 
   int mode_ctx = 0;
