diff --git a/vp8/common/entropymode.c b/vp8/common/entropymode.c
index e9dc668b2c9b42dda41f33a98fe4898c27ebab51..930e896ce0b5d47a83963b96349bd720288f78d9 100644
--- a/vp8/common/entropymode.c
+++ b/vp8/common/entropymode.c
@@ -33,11 +33,11 @@ typedef enum
     SUBMVREF_LEFT_ABOVE_ZED
 } sumvfref_t;
 
-int vp8_mv_cont(const MV *l, const MV *a)
+int vp8_mv_cont(const int_mv *l, const int_mv *a)
 {
-    int lez = (l->row == 0 && l->col == 0);
-    int aez = (a->row == 0 && a->col == 0);
-    int lea = (l->row == a->row && l->col == a->col);
+    int lez = (l->as_int == 0);
+    int aez = (a->as_int == 0);
+    int lea = (l->as_int == a->as_int);
 
     if (lea && lez)
         return SUBMVREF_LEFT_ABOVE_ZED;
diff --git a/vp8/common/entropymode.h b/vp8/common/entropymode.h
index da6ae8eada613ebf9497b81caca880baca4b10ae..fdb170df3b3dde9da182f7fcbf24da24f775ffa8 100644
--- a/vp8/common/entropymode.h
+++ b/vp8/common/entropymode.h
@@ -25,7 +25,7 @@ extern const int vp8_mbsplit_count [VP8_NUMMBSPLITS];    /* # of subsets */
 
 extern const vp8_prob vp8_mbsplit_probs [VP8_NUMMBSPLITS-1];
 
-extern int vp8_mv_cont(const MV *l, const MV *a);
+extern int vp8_mv_cont(const int_mv *l, const int_mv *a);
 #define SUBMVREF_COUNT 5
 extern const vp8_prob vp8_sub_mv_ref_prob2 [SUBMVREF_COUNT][VP8_SUBMVREFS-1];
 
diff --git a/vp8/decoder/decodemv.c b/vp8/decoder/decodemv.c
index 97cc6c9430eb925b54031cf5fdbc04f44165d06b..5defa75caf7929f6a3d0895b69ea6b3585fa27ed 100644
--- a/vp8/decoder/decodemv.c
+++ b/vp8/decoder/decodemv.c
@@ -362,7 +362,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
 
                 leftmv.as_int = left_block_mv(mi, k);
                 abovemv.as_int = above_block_mv(mi, k, mis);
-                mv_contz = vp8_mv_cont(&(leftmv.as_mv), &(abovemv.as_mv));
+                mv_contz = vp8_mv_cont(&leftmv, &abovemv);
 
                 switch (bmi.mode = (B_PREDICTION_MODE) sub_mv_ref(bc, vp8_sub_mv_ref_prob2 [mv_contz])) /*pc->fc.sub_mv_ref_prob))*/
                 {
diff --git a/vp8/encoder/bitstream.c b/vp8/encoder/bitstream.c
index ec2bb94a7e61f557e161c2e8db5e6acdfc3751ac..b10f8c01f51e6e4eec68c826dce7bcbf1683023a 100644
--- a/vp8/encoder/bitstream.c
+++ b/vp8/encoder/bitstream.c
@@ -1020,7 +1020,7 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi)
                                 assert(0);
                         leftmv.as_int = left_block_mv(m, k);
                         abovemv.as_int = above_block_mv(m, k, mis);
-                        mv_contz = vp8_mv_cont(&(leftmv.as_mv), &(abovemv.as_mv));
+                        mv_contz = vp8_mv_cont(&leftmv, &abovemv);
 
                         write_sub_mv_ref(w, b->mode, vp8_sub_mv_ref_prob2 [mv_contz]); //pc->fc.sub_mv_ref_prob);