diff --git a/src/ldap/ldap-contact-provider.cpp b/src/ldap/ldap-contact-provider.cpp
index 146a661269100f25f836effc7edc11987b99497b..50342617a0dc127ca553b1b5bdc5d1d19679148c 100644
--- a/src/ldap/ldap-contact-provider.cpp
+++ b/src/ldap/ldap-contact-provider.cpp
@@ -472,9 +472,10 @@ int LdapContactProvider::buildContact(LdapContactFields *contact,
 					if (mConfig.count("sip_domain") > 0 && mConfig.at("sip_domain")[0] != "")
 						linphone_address_set_domain(la, mConfig.at("sip_domain")[0].c_str());
 					char *newSip = linphone_address_as_string(la);
-					char *phoneNumber =
-					    linphone_account_normalize_phone_number(linphone_core_get_default_account(mCore->getCCore()),
-					                                            attributes[attributeIndex].second.c_str());
+					const char *username = linphone_address_get_username(la);
+					char *phoneNumber = username ? linphone_account_normalize_phone_number(
+					                                   linphone_core_get_default_account(mCore->getCCore()), username)
+					                             : nullptr;
 					if (contact->mSip.count(newSip) == 0 || contact->mSip[newSip] == "")
 						contact->mSip[newSip] = (phoneNumber ? phoneNumber : "");
 					if (phoneNumber) ms_free(phoneNumber);