diff --git a/src/conference.cpp b/src/conference.cpp
index 982624117151e57693bc5ba0e0fddb3cbbd3e079..df14909432cb962efbaaeb7b409f8994790169ea 100644
--- a/src/conference.cpp
+++ b/src/conference.cpp
@@ -184,6 +184,14 @@ void
 Conference::add(const std::string& participant_id)
 {
     if (participants_.insert(participant_id).second) {
+        // Check if participant was muted before conference
+        if (auto call = Manager::instance().callFactory.getCall<SIPCall>(participant_id)) {
+            if (call->isPeerMuted()) {
+                auto uri = call->getPeerNumber();
+                uri = string_remove_suffix(uri, '@');
+                participantsMuted_.emplace(uri);
+            }
+        }
 #ifdef ENABLE_VIDEO
         if (auto call = Manager::instance().callFactory.getCall<SIPCall>(participant_id)) {
             call->getVideoRtp().enterConference(this);