diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index ebde3d0c546270558b3361b80d05dcd2208186bd..e80194ed67934d8dea98e6c1f81186509d6236c6 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -209,8 +209,8 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
     if (stream_index != s->nb_streams - 1) {
     fail:
         for(i=0;i<s->nb_streams;i++) {
-            av_freep(&s->streams[i]);
             av_freep(&s->streams[i]->codec.extradata);
+            av_freep(&s->streams[i]);
         }
         return -1;
     }