diff --git a/src/app/avadapter.cpp b/src/app/avadapter.cpp
index 9ef21900ba4beb4a356bdf941eb173ecbe002bc6..85d56ac74dde9f9a3b363995164d44fc45aa14ea 100644
--- a/src/app/avadapter.cpp
+++ b/src/app/avadapter.cpp
@@ -320,14 +320,16 @@ AvAdapter::stopSharing(const QString& source)
                 ->removeMedia(callId,
                               libjami::Media::Details::MEDIA_TYPE_VIDEO,
                               libjami::Media::VideoProtocolPrefix::DISPLAY,
-                              muteCamera_);
+                              muteCamera_,
+                              true);
         } else {
             qDebug() << "Stopping file: " << source;
             lrcInstance_->getCurrentCallModel()
                 ->removeMedia(callId,
                               libjami::Media::Details::MEDIA_TYPE_VIDEO,
                               libjami::Media::VideoProtocolPrefix::FILE,
-                              muteCamera_);
+                              muteCamera_,
+                              true);
         }
     }
 }
diff --git a/src/app/calladapter.cpp b/src/app/calladapter.cpp
index 0a6e91520d74527614d62ee393d9ba5f910f3e48..f5036a94707261b324fa30259f239b0939d55467 100644
--- a/src/app/calladapter.cpp
+++ b/src/app/calladapter.cpp
@@ -976,7 +976,7 @@ CallAdapter::muteCameraToggle()
             callModel->removeMedia(callId,
                                    libjami::Media::Details::MEDIA_TYPE_VIDEO,
                                    libjami::Media::VideoProtocolPrefix::CAMERA,
-                                   mute);
+                                   mute, false);
         else
             callModel->addMedia(callId,
                                 lrcInstance_->avModel().getCurrentVideoCaptureDevice(),
diff --git a/src/libclient/api/callmodel.h b/src/libclient/api/callmodel.h
index 58a2b29eca7603e469ee11c72ce630583f2b0243..6840fbb52735bd8f3c61c8479ec6caf70cabee91 100644
--- a/src/libclient/api/callmodel.h
+++ b/src/libclient/api/callmodel.h
@@ -125,11 +125,13 @@ public:
      * @param source        Of the media
      * @param type          Audio/video
      * @param mute
+     * @param removeAll     Remove Audio/Video
      */
     void removeMedia(const QString& callId,
                      const QString& mediaType,
                      const QString& type,
-                     bool muteCamera);
+                     bool muteCamera,
+                     bool removeAll);
 
     /**
      * Get the call from its call id
diff --git a/src/libclient/callmodel.cpp b/src/libclient/callmodel.cpp
index faf12a03cf57c3dd29b5cc8b4906778ddca8db0b..fc799afcb30d03cf076d2f8b07cec86cdf16b51b 100644
--- a/src/libclient/callmodel.cpp
+++ b/src/libclient/callmodel.cpp
@@ -613,7 +613,8 @@ void
 CallModel::removeMedia(const QString& callId,
                        const QString& mediaType,
                        const QString& type,
-                       bool muteCamera)
+                       bool muteCamera,
+                       bool removeAll)
 {
     auto& callInfo = pimpl_->calls[callId];
     if (!callInfo)
@@ -629,7 +630,7 @@ CallModel::removeMedia(const QString& callId,
             replaceIdx = true;
             label = media[MediaAttributeKey::LABEL];
         } else {
-            if (!media[MediaAttributeKey::SOURCE].startsWith(type)) {
+            if (!removeAll || !media[MediaAttributeKey::SOURCE].startsWith(type)) {
                 if (media[MediaAttributeKey::MEDIA_TYPE] == mediaType) {
                     auto newMedia = media;
                     if (replaceIdx) {