diff --git a/libavformat/mxf.c b/libavformat/mxf.c
index 5a824acdf3b8e7a5c01e19408d83a306346b99b0..4d4bcbb35d1a78948719faa87658fc38d213fe0d 100644
--- a/libavformat/mxf.c
+++ b/libavformat/mxf.c
@@ -350,8 +350,7 @@ static int mxf_read_packet(AVFormatContext *s, AVPacket *pkt)
             int index = mxf_get_stream_index(s, &klv);
             if (index < 0) {
                 av_log(s, AV_LOG_ERROR, "error getting stream index\n");
-                url_fskip(s->pb, klv.length);
-                return -1;
+                goto skip;
             }
             if (s->streams[index]->discard == AVDISCARD_ALL)
                 goto skip;