diff --git a/src/modules/module-protocol-native.c b/src/modules/module-protocol-native.c index 09fbf2a27..897c95a25 100644 --- a/src/modules/module-protocol-native.c +++ b/src/modules/module-protocol-native.c @@ -686,7 +686,6 @@ error: this->recv_seq, res, "connection error"); pw_loop_destroy_source(loop, impl->source); impl->source = NULL; - pw_core_proxy_disconnect(this); } diff --git a/src/pipewire/proxy.c b/src/pipewire/proxy.c index 3601bfc64..449b28ec7 100644 --- a/src/pipewire/proxy.c +++ b/src/pipewire/proxy.c @@ -222,7 +222,7 @@ void pw_proxy_destroy(struct pw_proxy *proxy) if (!proxy->removed) { /* if the server did not remove this proxy, remove ourselves * from the proxy objects and schedule a destroy. */ - if (proxy->core_proxy) { + if (proxy->core_proxy && !proxy->core_proxy->destroyed) { proxy->zombie = true; pw_core_proxy_destroy(proxy->core_proxy, proxy); } else {