diff --git a/src/manager.cpp b/src/manager.cpp
index 0625ad879cc6273a959fdf048c23ea216778ca9b..c47e1641d340c0ee487d4da88b77ef879040ca47 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -1903,7 +1903,17 @@ Manager::incomingMessage(const std::string& callID,
         }
 
         JAMI_DBG("Is a conference, send incoming message to everyone");
-        pimpl_->sendTextMessageToConference(*conf, messages, from);
+        //filter out vcards messages  as they could be resent by master as its own vcard
+        // TODO. Implement a protocol to handle vcard messages
+        bool sendToOtherParicipants = true;
+        for (auto& message : messages) {
+            if (message.first.find("x-ring/ring.profile.vcard") != std::string::npos) {
+                sendToOtherParicipants = false;
+            }
+        }
+        if (sendToOtherParicipants) {
+            pimpl_->sendTextMessageToConference(*conf, messages, from);
+        }
 
         // in case of a conference we must notify client using conference id
         emitSignal<DRing::CallSignal::IncomingMessage>(conf->getConfID(), from, messages);