diff --git a/vp9/encoder/vp9_encodemb.c b/vp9/encoder/vp9_encodemb.c
index 641fc4cc88033e10a7362d208b14dac14970b3a0..6a918926dcdc9179817d70b8fdc22cc11d914e6f 100644
--- a/vp9/encoder/vp9_encodemb.c
+++ b/vp9/encoder/vp9_encodemb.c
@@ -531,6 +531,9 @@ static void encode_block(int plane, int block, BLOCK_SIZE_TYPE bsize,
   if (x->optimize)
     vp9_optimize_b(plane, block, bsize, ss_txfrm_size, args->cm, x, args->ctx);
 
+  if (x->skip_encode)
+    return;
+
   switch (ss_txfrm_size / 2) {
     case TX_32X32:
       vp9_short_idct32x32_add(dqcoeff, dst, pd->dst.stride);