diff --git a/ffserver.c b/ffserver.c
index ceca3df824e896acdc6af553df737bcb76bc8afe..5f5b37408e9ff0985f9a1b0143302f8f90d87f87 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -748,9 +748,6 @@ static void close_connection(HTTPContext *c)
 
     ctx = &c->fmt_ctx;
 
-    for(i=0; i<ctx->nb_streams; i++) 
-        av_free(ctx->streams[i]) ; 
-
     if (!c->last_packet_sent) {
         if (ctx->oformat) {
             /* prepare header */
@@ -761,6 +758,9 @@ static void close_connection(HTTPContext *c)
         }
     }
 
+    for(i=0; i<ctx->nb_streams; i++) 
+        av_free(ctx->streams[i]) ; 
+
     if (c->stream)
         current_bandwidth -= c->stream->bandwidth;
     av_freep(&c->pb_buffer);