diff --git a/includes/language.inc b/includes/language.inc
index 0409766..0a311f9 100644
--- a/includes/language.inc
+++ b/includes/language.inc
@@ -19,6 +19,10 @@ function language_initialize() {
   
   switch ($mode) {
     case LANGUAGE_NEGOTIATION_NONE:
+      if ($user->uid && isset($languages[$user->language])) {
+        return $languages[$user->language];
+      }
+      else
       return language_default();
 
     case LANGUAGE_NEGOTIATION_DOMAIN:
diff --git a/modules/locale/locale.module b/modules/locale/locale.module
index 092eb48..6ead80a 100644
--- a/modules/locale/locale.module
+++ b/modules/locale/locale.module
@@ -229,7 +229,7 @@ function locale_user($type, $edit, &$user, $category = NULL) {
       '#title' => t('Language'),
       '#default_value' => check_plain($user_preferred_language->language),
       '#options' => $names,
-      '#description' => ($mode == LANGUAGE_NEGOTIATION_PATH) ? t("This account's default language for e-mails, and preferred language for site presentation.") : t("This account's default language for e-mails."),
+      '#description' => ($mode == LANGUAGE_NEGOTIATION_PATH || LANGUAGE_NEGOTIATION_NONE) ? t("This account's default language for e-mails, and preferred language for site presentation.") : t("This account's default language for e-mails."),
     );
     return $form;
   }
