diff --git a/src/conference.cpp b/src/conference.cpp
index 915c4197eaac8c6b26d9c9b8a0c3a0d93c1e29d6..3348f22dbad5ff2378c2ef60fbccde82d9bb0c10 100644
--- a/src/conference.cpp
+++ b/src/conference.cpp
@@ -135,6 +135,12 @@ Conference::~Conference()
             call->sendTextMessage(std::map<std::string, std::string> {{"application/confInfo+json",
                                                                        "[]"}},
                                   account->getFromUri());
+
+            // Trigger the SIP negotiation to update the resolution for the remaining call
+            // ideally this sould be done without renegotiation
+            call->switchInput(
+                Manager::instance().getVideoManager().videoDeviceMonitor.getMRLForDefaultDevice());
+
             // Continue the recording for the call if the conference was recorded
             if (this->isRecording()) {
                 JAMI_DBG("Stop recording for conf %s", getConfID().c_str());
diff --git a/src/media/video/video_rtp_session.cpp b/src/media/video/video_rtp_session.cpp
index 88d7c317647f6b816498e4e37806a999ac58b4ca..8ad2d204a0caad588c3cc1632e4cd1aaccb7017c 100644
--- a/src/media/video/video_rtp_session.cpp
+++ b/src/media/video/video_rtp_session.cpp
@@ -394,14 +394,6 @@ VideoRtpSession::exitConference()
         videoMixer_.reset();
     }
 
-    // videoLocal_ is reset when a conference is created (only mixer need videoInput)
-    // when the conference is removed, we need to set videoLocal_ for the remaining call
-    if (!videoLocal_)
-        videoLocal_ = getVideoCamera();
-
-    if (videoLocal_)
-        videoLocal_->attach(sender_.get());
-
     conference_ = nullptr;
 }