diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index e8af3b5a019b3a8a06cf435c75739ee5200d2cd5..4ec86f97ebab5b0ba17d70c036e470bcf9e5be92 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -2871,23 +2871,22 @@ RingAccount::getToUri(const std::string& to) const
 pj_str_t
 RingAccount::getContactHeader(pjsip_transport* t)
 {
+    std::string quotedDisplayName = "\"" + displayName_ + "\" " + (displayName_.empty() ? "" : " ");
     if (t) {
         // FIXME: be sure that given transport is from SipIceTransport
         auto tlsTr = reinterpret_cast<tls::SipsIceTransport::TransportData*>(t)->self;
         auto address = tlsTr->getLocalAddress().toString(true);
         contact_.slen = pj_ansi_snprintf(contact_.ptr, PJSIP_MAX_URL_SIZE,
-                                         "%s%s<sips:%s%s%s;transport=dtls>",
-                                         displayName_.c_str(),
-                                         (displayName_.empty() ? "" : " "),
+                                         "%s<sips:%s%s%s;transport=dtls>",
+                                         quotedDisplayName.c_str(),
                                          identity_.second->getId().toString().c_str(),
                                          (address.empty() ? "" : "@"),
                                          address.c_str());
     } else {
         RING_ERR("getContactHeader: no SIP transport provided");
         contact_.slen = pj_ansi_snprintf(contact_.ptr, PJSIP_MAX_URL_SIZE,
-                                         "%s%s<sips:%s@ring.dht>",
-                                         displayName_.c_str(),
-                                         (displayName_.empty() ? "" : " "),
+                                         "%s<sips:%s@ring.dht>",
+                                         quotedDisplayName.c_str(),
                                          identity_.second->getId().toString().c_str());
     }
     return contact_;
diff --git a/src/sip/sipaccount.cpp b/src/sip/sipaccount.cpp
index 2c8e2d81660c06bdedc66f20b95fc759e1f03627..fbb52c2a4de0fb373b39e282f174ac8b9d4581c4 100644
--- a/src/sip/sipaccount.cpp
+++ b/src/sip/sipaccount.cpp
@@ -1461,10 +1461,10 @@ SIPAccount::getContactHeader(pjsip_transport* t)
         transport = ";transport=tls";
     }
 
+    std::string quotedDisplayName = "\"" + displayName_ + "\" " + (displayName_.empty() ? "" : " ");
     contact_.slen = pj_ansi_snprintf(contact_.ptr, PJSIP_MAX_URL_SIZE,
-                                     "%s%s<%s:%s%s%s:%d%s>",
-                                     displayName_.c_str(),
-                                     (displayName_.empty() ? "" : " "),
+                                     "%s<%s:%s%s%s:%d%s>",
+                                     quotedDisplayName.c_str(),
                                      scheme,
                                      username_.c_str(),
                                      (username_.empty() ? "" : "@"),