diff --git a/CRM/Contact/Form/Edit/CommunicationPreferences.php b/CRM/Contact/Form/Edit/CommunicationPreferences.php
index bf2a39e8aac6dd7b02758eab8e5f1ec84ae26098..207fb2d9d5acc9b4b6b758397e5b5972700b2ea9 100644
--- a/CRM/Contact/Form/Edit/CommunicationPreferences.php
+++ b/CRM/Contact/Form/Edit/CommunicationPreferences.php
@@ -162,7 +162,9 @@ class CRM_Contact_Form_Edit_CommunicationPreferences {
   static function setDefaultValues(&$form, &$defaults) {
 
     if (!empty($defaults['preferred_language'])) {
-      $defaults['preferred_language'] = CRM_Core_PseudoConstant::getKey('CRM_Contact_DAO_Contact', 'preferred_language', $defaults['preferred_language']);
+      $defaults['preferred_language'] = CRM_Utils_Array::key($defaults['preferred_language'],
+        CRM_Contact_BAO_Contact::buildOptions('preferred_language')
+      );
     }
 
     // CRM-7119: set preferred_language to default if unset