diff --git a/gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c b/gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c
index c3ab7a6..f43d6b1 100644
--- a/gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c
+++ b/gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c
@@ -537,6 +537,9 @@ decode_current_picture(GstVaapiDecoderMpeg2 *decoder)
     if (!gst_vaapi_picture_decode(picture))
         goto error;
     if (GST_VAAPI_PICTURE_IS_COMPLETE(picture)) {
+        if (picture->type == GST_VAAPI_PICTURE_TYPE_I) {
+            gst_vaapi_dpb_flush(priv->dpb);
+        }
         if (!gst_vaapi_dpb_add(priv->dpb, picture))
             goto error;
         gst_vaapi_picture_replace(&priv->current_picture, NULL);
