diff --git a/vp9/common/vp9_entropy.h b/vp9/common/vp9_entropy.h
index 1106af5880950371182e89c91c5e56e2be88262b..82cbfd32ccea923b18a6921fedca672bcccfe20d 100644
--- a/vp9/common/vp9_entropy.h
+++ b/vp9/common/vp9_entropy.h
@@ -157,15 +157,14 @@ void vp9_coef_tree_initialize(void);
 void vp9_adapt_coef_probs(struct VP9Common *);
 
 static INLINE void reset_skip_context(MACROBLOCKD *xd, BLOCK_SIZE_TYPE bsize) {
-  const int bw = 1 << b_width_log2(bsize);
-  const int bh = 1 << b_height_log2(bsize);
   int i;
   for (i = 0; i < MAX_MB_PLANE; i++) {
     struct macroblockd_plane *const pd = &xd->plane[i];
-    vpx_memset(pd->above_context, 0,
-               sizeof(ENTROPY_CONTEXT) * (bw >> pd->subsampling_x));
-    vpx_memset(pd->left_context, 0,
-               sizeof(ENTROPY_CONTEXT) * (bh >> pd->subsampling_y));
+    const BLOCK_SIZE_TYPE plane_bsize = get_plane_block_size(bsize, pd);
+    vpx_memset(pd->above_context, 0, sizeof(ENTROPY_CONTEXT) *
+                   num_4x4_blocks_wide_lookup[plane_bsize]);
+    vpx_memset(pd->left_context, 0, sizeof(ENTROPY_CONTEXT) *
+                   num_4x4_blocks_high_lookup[plane_bsize]);
   }
 }