diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
index 28ddac0a1..dac3cfa38 100644
--- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
+++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
@@ -3670,7 +3670,15 @@ gst_adaptive_demux_stream_download_loop (GstAdaptiveDemuxStream * stream)
       if (ret == GST_FLOW_NOT_LINKED) {
         GST_ELEMENT_FLOW_ERROR (demux, ret);
       }
-    }
+      else if (ret == GST_FLOW_EOS) {
+          if (gst_adaptive_demux_has_next_period (demux)) {
+            GST_DEBUG_OBJECT (stream->pad,
+                "Next period available, not sending EOS");
+            gst_adaptive_demux_advance_period (demux);
+            ret = GST_FLOW_OK;
+          }
+        }
+      }
       break;
 
     case GST_FLOW_FLUSHING:{
