diff --git a/src/conference.cpp b/src/conference.cpp
index 3556979e2d0134004fdfec0e04b327fe3679a680..1fd0a86039a9b07dab6969e2495c57a1eab049b9 100644
--- a/src/conference.cpp
+++ b/src/conference.cpp
@@ -532,7 +532,6 @@ Conference::sendConferenceInfos()
         }
     }
 
-
     auto confInfo = getConfInfoHostUri("", "");
     createSinks(confInfo);
 
@@ -580,13 +579,14 @@ void
 Conference::remove(const std::string& participant_id)
 {
     if (participants_.erase(participant_id)) {
-#ifdef ENABLE_VIDEO
         if (auto call = getCall(participant_id)) {
+            participantsMuted_.erase(std::string(string_remove_suffix(call->getPeerNumber(), '@')));
+#ifdef ENABLE_VIDEO
             call->exitConference();
             if (call->isPeerRecording())
                 call->peerRecording(false);
-        }
 #endif // ENABLE_VIDEO
+        }
     }
 }
 
diff --git a/test/unitTest/actors/alice-bob-carla.yml b/test/unitTest/actors/alice-bob-carla-davi.yml
similarity index 85%
rename from test/unitTest/actors/alice-bob-carla.yml
rename to test/unitTest/actors/alice-bob-carla-davi.yml
index 732f4102ecc9ee2cef682f731c41371ef22cce01..522bd75f070caf6d0d869107027e70fa04a8a4a6 100644
--- a/test/unitTest/actors/alice-bob-carla.yml
+++ b/test/unitTest/actors/alice-bob-carla-davi.yml
@@ -18,3 +18,7 @@ accounts:
   carla:
     displayName: CARLA
     alias: CARLA
+
+  davi:
+    displayName: DAVI
+    alias: DAVI
diff --git a/test/unitTest/call/conference.cpp b/test/unitTest/call/conference.cpp
index efaad83c69e26efa74b09aa7112d86c8aab7c08a..1b12ad9e6ba8feef6fff7d41ffebe2fa16a5d13e 100644
--- a/test/unitTest/call/conference.cpp
+++ b/test/unitTest/call/conference.cpp
@@ -72,21 +72,25 @@ private:
     void testModeratorMuteUpdateParticipantsInfos();
     void testAudioVideoMutedStates();
     void testCreateParticipantsSinks();
+    void testMuteStatusAfterRemove();
 
     CPPUNIT_TEST_SUITE(ConferenceTest);
     CPPUNIT_TEST(testGetConference);
     CPPUNIT_TEST(testModeratorMuteUpdateParticipantsInfos);
     CPPUNIT_TEST(testAudioVideoMutedStates);
     CPPUNIT_TEST(testCreateParticipantsSinks);
+    CPPUNIT_TEST(testMuteStatusAfterRemove);
     CPPUNIT_TEST_SUITE_END();
 
     // Common parts
     std::string aliceId;
     std::string bobId;
     std::string carlaId;
+    std::string daviId;
     std::string confId {};
     CallData bobCall {};
     CallData carlaCall {};
+    CallData daviCall {};
 
     std::mutex mtx;
     std::unique_lock<std::mutex> lk {mtx};
@@ -102,20 +106,22 @@ CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(ConferenceTest, ConferenceTest::name());
 void
 ConferenceTest::setUp()
 {
-    auto actors = load_actors_and_wait_for_announcement("actors/alice-bob-carla.yml");
+    auto actors = load_actors_and_wait_for_announcement("actors/alice-bob-carla-davi.yml");
     aliceId = actors["alice"];
     bobId = actors["bob"];
     carlaId = actors["carla"];
+    daviId = actors["davi"];
 
     bobCall.reset();
     carlaCall.reset();
+    daviCall.reset();
     confId = {};
 }
 
 void
 ConferenceTest::tearDown()
 {
-    wait_for_removal_of({aliceId, bobId, carlaId});
+    wait_for_removal_of({aliceId, bobId, carlaId, daviId});
 }
 
 void
@@ -124,9 +130,11 @@ ConferenceTest::registerSignalHandlers()
     auto aliceAccount = Manager::instance().getAccount<JamiAccount>(aliceId);
     auto bobAccount = Manager::instance().getAccount<JamiAccount>(bobId);
     auto carlaAccount = Manager::instance().getAccount<JamiAccount>(carlaId);
+    auto daviAccount = Manager::instance().getAccount<JamiAccount>(daviId);
     auto aliceUri = aliceAccount->getUsername();
     auto bobUri = bobAccount->getUsername();
     auto carlaUri = carlaAccount->getUsername();
+    auto daviUri = daviAccount->getUsername();
 
     std::map<std::string, std::shared_ptr<DRing::CallbackWrapperBase>> confHandlers;
     // Watch signals
@@ -139,6 +147,8 @@ ConferenceTest::registerSignalHandlers()
                 bobCall.callId = callId;
             } else if (accountId == carlaId) {
                 carlaCall.callId = callId;
+            } else if (accountId == daviId) {
+                daviCall.callId = callId;
             }
             cv.notify_one();
         }));
@@ -148,6 +158,8 @@ ConferenceTest::registerSignalHandlers()
                 bobCall.state = state;
             else if (carlaCall.callId == callId)
                 carlaCall.state = state;
+            else if (daviCall.callId == callId)
+                daviCall.state = state;
             cv.notify_one();
         }));
     confHandlers.insert(DRing::exportable_callback<DRing::CallSignal::ConferenceCreated>(
@@ -169,6 +181,8 @@ ConferenceTest::registerSignalHandlers()
                     bobCall.moderatorMuted = infos.at("audioModeratorMuted") == "true";
                 } else if (infos.at("uri").find(carlaUri) != std::string::npos) {
                     carlaCall.moderatorMuted = infos.at("audioModeratorMuted") == "true";
+                } else if (infos.at("uri").find(daviUri) != std::string::npos) {
+                    daviCall.moderatorMuted = infos.at("audioModeratorMuted") == "true";
                 }
             }
             cv.notify_one();
@@ -213,7 +227,7 @@ ConferenceTest::hangupConference()
     JAMI_INFO("Stop conference");
     Manager::instance().hangupConference(confId);
     CPPUNIT_ASSERT(cv.wait_for(lk, std::chrono::seconds(30), [&] {
-        return carlaCall.state == "OVER" && bobCall.state == "OVER" && confId.empty();
+        return bobCall.state == "OVER" && carlaCall.state == "OVER" && confId.empty();
     }));
     std::this_thread::sleep_for(std::chrono::seconds(10));
 }
@@ -325,23 +339,72 @@ ConferenceTest::testCreateParticipantsSinks()
 
     auto infos = Manager::instance().getConferenceInfos(confId);
 
-    CPPUNIT_ASSERT(
-        cv.wait_for(lk, std::chrono::seconds(5), [&] {
-            bool sinksStatus = true;
-            for (auto& info : infos) {
-                if (info["uri"] == bobUri) {
-                    sinksStatus &= (Manager::instance().getSinkClient(info["sinkId"]) != nullptr);
-                } else if (info["uri"] == carlaUri) {
-                    sinksStatus &= (Manager::instance().getSinkClient(info["sinkId"]) != nullptr);
-                }
+    CPPUNIT_ASSERT(cv.wait_for(lk, std::chrono::seconds(5), [&] {
+        bool sinksStatus = true;
+        for (auto& info : infos) {
+            if (info["uri"] == bobUri) {
+                sinksStatus &= (Manager::instance().getSinkClient(info["sinkId"]) != nullptr);
+            } else if (info["uri"] == carlaUri) {
+                sinksStatus &= (Manager::instance().getSinkClient(info["sinkId"]) != nullptr);
             }
-            return sinksStatus;
-        }));
+        }
+        return sinksStatus;
+    }));
 
     hangupConference();
 
     DRing::unregisterSignalHandlers();
 }
+
+void
+ConferenceTest::testMuteStatusAfterRemove()
+{
+    registerSignalHandlers();
+
+    auto aliceAccount = Manager::instance().getAccount<JamiAccount>(aliceId);
+    auto bobAccount = Manager::instance().getAccount<JamiAccount>(bobId);
+    auto bobUri = bobAccount->getUsername();
+    auto daviAccount = Manager::instance().getAccount<JamiAccount>(daviId);
+    auto daviUri = daviAccount->getUsername();
+
+    startConference();
+
+    JAMI_INFO("Start call between Alice and Davi");
+    auto call1 = aliceAccount->newOutgoingCall(daviUri);
+    CPPUNIT_ASSERT(
+        cv.wait_for(lk, std::chrono::seconds(20), [&] { return !daviCall.callId.empty(); }));
+    Manager::instance().answerCall(daviCall.callId);
+    CPPUNIT_ASSERT(
+        cv.wait_for(lk, std::chrono::seconds(20), [&] { return daviCall.state == "CURRENT"; }));
+    Manager::instance().addParticipant(daviCall.callId, confId);
+
+    Manager::instance().muteParticipant(confId, daviUri, true);
+    CPPUNIT_ASSERT(
+        cv.wait_for(lk, std::chrono::seconds(5), [&] { return daviCall.moderatorMuted.load(); }));
+
+    Manager::instance().hangupCall(daviCall.callId);
+    CPPUNIT_ASSERT(
+        cv.wait_for(lk, std::chrono::seconds(20), [&] { return daviCall.state == "OVER"; }));
+    daviCall.reset();
+
+    auto call2 = aliceAccount->newOutgoingCall(daviUri);
+    CPPUNIT_ASSERT(
+        cv.wait_for(lk, std::chrono::seconds(20), [&] { return !daviCall.callId.empty(); }));
+    Manager::instance().answerCall(daviCall.callId);
+    CPPUNIT_ASSERT(
+        cv.wait_for(lk, std::chrono::seconds(20), [&] { return daviCall.state == "CURRENT"; }));
+    Manager::instance().addParticipant(daviCall.callId, confId);
+
+    CPPUNIT_ASSERT(
+        cv.wait_for(lk, std::chrono::seconds(5), [&] { return !daviCall.moderatorMuted.load(); }));
+
+    Manager::instance().hangupCall(daviCall.callId);
+    CPPUNIT_ASSERT(
+        cv.wait_for(lk, std::chrono::seconds(20), [&] { return daviCall.state == "OVER"; }));
+    hangupConference();
+
+    DRing::unregisterSignalHandlers();
+}
 } // namespace test
 } // namespace jami
 
diff --git a/test/unitTest/conversation/conversation.cpp b/test/unitTest/conversation/conversation.cpp
index 2afb3cd6d03854a5a25484d769a19ac46745d72f..858f20e290930b0b18c47bac9453571af4f5e843 100644
--- a/test/unitTest/conversation/conversation.cpp
+++ b/test/unitTest/conversation/conversation.cpp
@@ -232,7 +232,7 @@ ConversationTest::setUp()
     if (not Manager::instance().initialized)
         CPPUNIT_ASSERT(DRing::start("jami-sample.yml"));
 
-    auto actors = load_actors("actors/alice-bob-carla.yml");
+    auto actors = load_actors("actors/alice-bob-carla-davi.yml");
     aliceId = actors["alice"];
     bobId = actors["bob"];
     carlaId = actors["carla"];
diff --git a/test/unitTest/fileTransfer/fileTransfer.cpp b/test/unitTest/fileTransfer/fileTransfer.cpp
index 658e0a527708ca69951733eee0b1e25f1227f086..06cc30c91d81ecbda9186c3b4793c3b6f7864f9c 100644
--- a/test/unitTest/fileTransfer/fileTransfer.cpp
+++ b/test/unitTest/fileTransfer/fileTransfer.cpp
@@ -113,7 +113,7 @@ FileTransferTest::compare(const std::string& fileA, const std::string& fileB) co
 void
 FileTransferTest::setUp()
 {
-    auto actors = load_actors_and_wait_for_announcement("actors/alice-bob-carla.yml");
+    auto actors = load_actors_and_wait_for_announcement("actors/alice-bob-carla-davi.yml");
     aliceId = actors["alice"];
     bobId = actors["bob"];
     carlaId = actors["carla"];