diff --git a/lib/wp/endpoint.c b/lib/wp/endpoint.c
index 8cc17a3da27dc74a435d1dce0fc2bde9a730c737..71d31eb16a2f99c8a6d373f648b14d176dadef8c 100644
--- a/lib/wp/endpoint.c
+++ b/lib/wp/endpoint.c
@@ -771,6 +771,7 @@ struct _WpEndpointLinkPrivate
   guint32 src_stream;
   GWeakRef sink;
   guint32 sink_stream;
+  gboolean keep;
 };
 
 enum {
@@ -779,6 +780,7 @@ enum {
   LINKPROP_SRC_STREAM,
   LINKPROP_SINK,
   LINKPROP_SINK_STREAM,
+  LINKPROP_KEEP,
 };
 
 static void wp_endpoint_link_async_initable_init (gpointer iface,
@@ -822,6 +824,9 @@ endpoint_link_set_property (GObject * object, guint property_id,
   case LINKPROP_SINK_STREAM:
     priv->sink_stream = g_value_get_uint(value);
     break;
+  case LINKPROP_KEEP:
+    priv->keep = g_value_get_boolean (value);
+    break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
     break;
@@ -848,6 +853,9 @@ endpoint_link_get_property (GObject * object, guint property_id,
   case LINKPROP_SINK_STREAM:
     g_value_set_uint (value, priv->sink_stream);
     break;
+  case LINKPROP_KEEP:
+    g_value_set_boolean (value, priv->keep);
+    break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
     break;
@@ -945,6 +953,10 @@ wp_endpoint_link_class_init (WpEndpointLinkClass * klass)
       g_param_spec_uint ("sink-stream", "sink-stream", "The sink stream",
           0, G_MAXUINT, 0,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (object_class, LINKPROP_KEEP,
+      g_param_spec_boolean ("keep", "keep", "If we want to keep the link",
+          FALSE,
+          G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
 }
 
 /**
@@ -1007,10 +1019,21 @@ wp_endpoint_link_get_sink_stream (WpEndpointLink * self)
   return priv->sink_stream;
 }
 
+gboolean
+wp_endpoint_link_is_kept (WpEndpointLink * self)
+{
+  WpEndpointLinkPrivate *priv;
+
+  g_return_val_if_fail (WP_IS_ENDPOINT_LINK (self), 0);
+
+  priv = wp_endpoint_link_get_instance_private (self);
+  return priv->keep;
+}
+
 void
 wp_endpoint_link_new (WpCore * core, WpEndpoint * src, guint32 src_stream,
-    WpEndpoint * sink, guint32 sink_stream, GAsyncReadyCallback ready,
-    gpointer data)
+    WpEndpoint * sink, guint32 sink_stream, gboolean keep,
+    GAsyncReadyCallback ready, gpointer data)
 {
   const gchar *src_factory = NULL, *sink_factory = NULL;
   GVariantBuilder b;
@@ -1049,6 +1072,8 @@ wp_endpoint_link_new (WpCore * core, WpEndpoint * src, guint32 src_stream,
       g_variant_new_uint64 ((guint64)sink));
   g_variant_builder_add (&b, "{sv}", "sink-stream",
       g_variant_new_uint32 (sink_stream));
+  g_variant_builder_add (&b, "{sv}", "keep",
+      g_variant_new_boolean (keep));
   link_props = g_variant_builder_end (&b);
 
   /* Create the link object async */
diff --git a/lib/wp/endpoint.h b/lib/wp/endpoint.h
index 1869cdfab96d42a20d4159578978299fc04fab28..c906c6b8f6be6fd089d19c40aca7671ec76515ef 100644
--- a/lib/wp/endpoint.h
+++ b/lib/wp/endpoint.h
@@ -87,9 +87,10 @@ WpEndpoint * wp_endpoint_link_get_source_endpoint (WpEndpointLink * self);
 guint32 wp_endpoint_link_get_source_stream (WpEndpointLink * self);
 WpEndpoint * wp_endpoint_link_get_sink_endpoint (WpEndpointLink * self);
 guint32 wp_endpoint_link_get_sink_stream (WpEndpointLink * self);
+gboolean wp_endpoint_link_is_kept (WpEndpointLink * self);
 
 void wp_endpoint_link_new (WpCore * core, WpEndpoint * src,
-    guint32 src_stream, WpEndpoint * sink, guint32 sink_stream,
+    guint32 src_stream, WpEndpoint * sink, guint32 sink_stream, gboolean keep,
     GAsyncReadyCallback ready, gpointer data);
 WpEndpointLink * wp_endpoint_link_new_finish (GObject *initable,
     GAsyncResult *res, GError **error);
diff --git a/modules/module-pipewire/simple-endpoint-link.c b/modules/module-pipewire/simple-endpoint-link.c
index 193b881e52ca52f2f72e26d205eaaf5bd07857d1..52878a4f388bff00f8a6344cecc705785db794c0 100644
--- a/modules/module-pipewire/simple-endpoint-link.c
+++ b/modules/module-pipewire/simple-endpoint-link.c
@@ -231,6 +231,7 @@ simple_endpoint_link_factory (WpFactory * factory, GType type,
   g_autoptr(WpCore) core = NULL;
   guint64 src, sink;
   guint src_stream, sink_stream;
+  gboolean keep;
 
   /* Make sure the type is an endpoint link */
   g_return_if_fail (type == WP_TYPE_ENDPOINT_LINK);
@@ -248,6 +249,8 @@ simple_endpoint_link_factory (WpFactory * factory, GType type,
       return;
   if (!g_variant_lookup (properties, "sink-stream", "u", &sink_stream))
       return;
+  if (!g_variant_lookup (properties, "keep", "b", &keep))
+      return;
 
   /* Create the endpoint link */
   g_async_initable_new_async (
@@ -256,6 +259,7 @@ simple_endpoint_link_factory (WpFactory * factory, GType type,
       "src-stream", src_stream,
       "sink", (gpointer)sink,
       "sink-stream", sink_stream,
+      "keep", keep,
       "core", core,
       NULL);
 }