diff --git a/core/modules/language/language.module b/core/modules/language/language.module
index 9d7eccc..34f1a59 100644
--- a/core/modules/language/language.module
+++ b/core/modules/language/language.module
@@ -452,8 +452,8 @@ function language_block_info() {
   $info = language_types_info();
   foreach (language_types_get_configurable(FALSE) as $type) {
     $block[$type] = array(
-      // The language type name is supposed to be passed through t(), hence we
-      // need to avoid double-escaping it.
+      // We do not need to escape the language type name since the block 'info'
+      // value is supposed not to be sanitized. It is escaped later, if needed.
       'info' => t('Language switcher (!type)', array('!type' => $info[$type]['name'])),
       // Not worth caching.
       'cache' => DRUPAL_NO_CACHE,
diff --git a/core/modules/locale/locale.install b/core/modules/locale/locale.install
index 3bbe945..f593388 100644
--- a/core/modules/locale/locale.install
+++ b/core/modules/locale/locale.install
@@ -427,7 +427,11 @@ function locale_update_8006() {
   );
   // Add all language type weight variables. As the function language_types()
   // is not available its functionality is rebuild.
-  $language_types = variable_get('language_types', language_types_get_default());
+  $language_types = variable_get('language_types', array(
+    LANGUAGE_TYPE_INTERFACE => TRUE,
+    LANGUAGE_TYPE_CONTENT => FALSE,
+    LANGUAGE_TYPE_URL => FALSE,
+  ));
   foreach ($language_types as $language_type => $configurable) {
     $variable_names[] = 'language_negotiation_methods_weight_' . $language_type;
   }
