diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c
index b709793653db3073830310f33e50bf3f67e47707..0a033f1a3abfe5cfbc5137db07996e94e881a7dd 100644
--- a/av1/common/reconinter.c
+++ b/av1/common/reconinter.c
@@ -905,10 +905,12 @@ void av1_jnt_comp_weight_assign(const AV1_COMMON *cm, const MB_MODE_INFO *mbmi,
   }
 
   int i;
-  for (i = 0; i < 4; ++i) {
+  for (i = 0; i < 3; ++i) {
     int c0 = quant_dist_weight[i][order];
     int c1 = quant_dist_weight[i][!order];
-    if (d0 * c0 < d1 * c1) break;
+    int d0_c0 = d0 * c0;
+    int d1_c1 = d1 * c1;
+    if ((d0 > d1 && d0_c0 < d1_c1) || (d0 <= d1 && d0_c0 > d1_c1)) break;
   }
 
   *fwd_offset = quant_dist_lookup_table[order_idx][i][order];