diff --git a/libavformat/mlvdec.c b/libavformat/mlvdec.c
index 4dcf52b2e37132c6fd9f629d204f4e2dd2a22aa9..a980ed6218cd938ddc2af29d5effc835240aa019 100644
--- a/libavformat/mlvdec.c
+++ b/libavformat/mlvdec.c
@@ -452,6 +452,10 @@ static int read_seek(AVFormatContext *avctx, int stream_index, int64_t timestamp
 static int read_close(AVFormatContext *s)
 {
     MlvContext *mlv = s->priv_data;
+    int i;
+    for (i = 0; i < 100; i++)
+        if (mlv->pb[i])
+            avio_close(mlv->pb[i]);
     return 0;
 }