diff --git a/ffserver.c b/ffserver.c
index ca4b54f4d4916854fa1bd4a91f69760ebbcce6a4..2cbfe7589e11b8ab57b578daf9e828ba878961ac 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -3644,18 +3644,6 @@ static void build_feed_streams(void)
     FFStream *stream, *feed;
     int i;
 
-    /* gather all streams */
-    for(stream = first_stream; stream != NULL; stream = stream->next) {
-        feed = stream->feed;
-        if (feed) {
-            if (!stream->is_feed) {
-                /* we handle a stream coming from a feed */
-                for(i=0;i<stream->nb_streams;i++)
-                    stream->feed_streams[i] = add_av_stream(feed, stream->streams[i]);
-            }
-        }
-    }
-
     /* gather all streams */
     for(stream = first_stream; stream != NULL; stream = stream->next) {
         feed = stream->feed;
@@ -3663,6 +3651,10 @@ static void build_feed_streams(void)
             if (stream->is_feed) {
                 for(i=0;i<stream->nb_streams;i++)
                     stream->feed_streams[i] = i;
+            } else {
+                /* we handle a stream coming from a feed */
+                for(i=0;i<stream->nb_streams;i++)
+                    stream->feed_streams[i] = add_av_stream(feed, stream->streams[i]);
             }
         }
     }