diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c
index 5427de4ec649a4afafd72fbf208d35096064f5a2..7ca75270269bb7c31c30607bb4283ccfd8787b38 100644
--- a/libavcodec/vc1_block.c
+++ b/libavcodec/vc1_block.c
@@ -2726,7 +2726,7 @@ static void vc1_decode_i_blocks_adv(VC1Context *v)
                 v->vc1dsp.vc1_inv_trans_8x8(block[k]);
             }
 
-            if (v->overlap && v->condover != CONDOVER_NONE)
+            if (v->overlap && (v->pq >= 9 || v->condover != CONDOVER_NONE))
                 ff_vc1_i_overlap_filter(v);
             vc1_put_blocks_clamped(v, 1);
             if (v->s.loop_filter)