diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c
index 39f7483..b15f4d8 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -733,7 +733,10 @@ gst_base_src_new_seamless_segment (GstBaseSrc * src, gint64 start, gint64 stop,
       GST_TIME_FORMAT " position %" GST_TIME_FORMAT, GST_TIME_ARGS (start),
       GST_TIME_ARGS (stop), GST_TIME_ARGS (position));
 
-  if (src->data.ABI.running) {
+  /*  do not set close segment if a newsegment event has not been pushed yet,
+   *  i.e. if close_segment is NULL and start_segment is set */
+  if (src->data.ABI.running && (src->priv->close_segment != NULL ||
+        src->priv->start_segment == NULL)) {
     if (src->priv->close_segment)
       gst_event_unref (src->priv->close_segment);
     src->priv->close_segment =
