diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 31f99cd..b38f99f 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -42,8 +42,8 @@
   FRAME_COUNTS *counts = xd->counts;
   int sign, abs, reduced_delta_qindex = 0;
   BLOCK_SIZE bsize = mbmi->sb_type;
-  const int b_col = mi_col & MAX_MIB_MASK;
-  const int b_row = mi_row & MAX_MIB_MASK;
+  const int b_col = mi_col & (cm->mib_size - 1);
+  const int b_row = mi_row & (cm->mib_size - 1);
   const int read_delta_q_flag = (b_col == 0 && b_row == 0);
   int rem_bits, thr;
   int i, smallval;
@@ -84,8 +84,8 @@
   FRAME_COUNTS *counts = xd->counts;
   int sign, abs, reduced_delta_lflevel = 0;
   BLOCK_SIZE bsize = mbmi->sb_type;
-  const int b_col = mi_col & MAX_MIB_MASK;
-  const int b_row = mi_row & MAX_MIB_MASK;
+  const int b_col = mi_col & (cm->mib_size - 1);
+  const int b_row = mi_row & (cm->mib_size - 1);
   const int read_delta_lf_flag = (b_col == 0 && b_row == 0);
   int rem_bits, thr;
   int i, smallval;
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 2e6ccb0..4e1603a 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -1487,8 +1487,8 @@
 
   skip = write_skip(cm, xd, segment_id, mi, w);
   if (cm->delta_q_present_flag) {
-    int super_block_upper_left =
-        ((mi_row & MAX_MIB_MASK) == 0) && ((mi_col & MAX_MIB_MASK) == 0);
+    int super_block_upper_left = ((mi_row & (cm->mib_size - 1)) == 0) &&
+                                 ((mi_col & (cm->mib_size - 1)) == 0);
     if ((bsize != cm->sb_size || skip == 0) && super_block_upper_left) {
       assert(mbmi->current_q_index > 0);
       int reduced_delta_qindex =
@@ -1815,8 +1815,8 @@
 
   const int skip = write_skip(cm, xd, mbmi->segment_id, mi, w);
   if (cm->delta_q_present_flag) {
-    int super_block_upper_left =
-        ((mi_row & MAX_MIB_MASK) == 0) && ((mi_col & MAX_MIB_MASK) == 0);
+    int super_block_upper_left = ((mi_row & (cm->mib_size - 1)) == 0) &&
+                                 ((mi_col & (cm->mib_size - 1)) == 0);
     if ((bsize != cm->sb_size || skip == 0) && super_block_upper_left) {
       assert(mbmi->current_q_index > 0);
       int reduced_delta_qindex =
