diff --git a/daemon/src/video/video_receive_thread.cpp b/daemon/src/video/video_receive_thread.cpp
index 43d9663bbfb2372ec0fc4007fe79df26ca8536e6..52892b3c84592e03f7f74dd53e5c1e4dbaf55416 100644
--- a/daemon/src/video/video_receive_thread.cpp
+++ b/daemon/src/video/video_receive_thread.cpp
@@ -235,11 +235,13 @@ void VideoReceiveThread::exitConference()
     if (!isRunning())
         return;
 
-    EXIT_IF_FAIL(sink_.start(), "RX: sink startup failed");
-    if (attach(&sink_)) {
-        Manager::instance().getVideoControls()->startedDecoding(id_+"RX", sink_.openedName(), dstWidth_, dstHeight_);
-        DEBUG("RX: shm sink <%s> started: size = %dx%d",
-              sink_.openedName().c_str(), dstWidth_, dstHeight_);
+    if (sink_.openedName().empty()) {
+        EXIT_IF_FAIL(sink_.start(), "RX: sink startup failed");
+        if (attach(&sink_)) {
+            Manager::instance().getVideoControls()->startedDecoding(id_+"RX", sink_.openedName(), dstWidth_, dstHeight_);
+            DEBUG("RX: shm sink <%s> started: size = %dx%d",
+                  sink_.openedName().c_str(), dstWidth_, dstHeight_);
+        }
     }
 }