diff --git a/core/modules/language/language.module b/core/modules/language/language.module
index 4d2688c..c76db4f 100644
--- a/core/modules/language/language.module
+++ b/core/modules/language/language.module
@@ -239,6 +239,8 @@ function language_element_info_alter(&$type) {
  *
  * @return array $element
  *   The processed form element.
+ *
+ *  @todo Translate the language names, see: https://drupal.org/node/2067435
  */
 function language_process_language_select($element) {
   // Don't set the options if another module (translation for example) already
@@ -249,6 +251,16 @@ function language_process_language_select($element) {
       $element['#options'][$langcode] = $language->locked ? t('- @name -', array('@name' => $language->name)) : $language->name;
     }
   }
+  // Add the language from the default value to #options when two conditions
+  //  exist: 1) the element has a default value set 2) The default value isn't already in #options
+  if (isset($element['#default_value']) && !isset($element['#options'][$element['#default_value']])) {
+    $list = \Drupal\Core\Language\LanguageManager::getStandardLanguageList();
+    $langcode = $element['#default_value'];
+    if (isset($list[$langcode])) {
+      // Prepend the default language at the beginning of the list.
+      $element['#options'] = array($langcode => $list[$langcode][0]) + $element['#options'];
+    }
+  }
   return $element;
 }
 
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php b/core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php
index 96ad07f..435c2e4 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php
+++ b/core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\menu\Tests;
 
+use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Language\Language;
 
 /**
@@ -55,7 +56,7 @@ function setUp() {
   function testMenuLanguage() {
     // Create a test menu to test the various language-related settings.
     // Machine name has to be lowercase.
-    $menu_name = drupal_strtolower($this->randomName(16));
+    $menu_name = Unicode::strtolower($this->randomName(16));
     $label = $this->randomString();
     $edit = array(
       'id' => $menu_name,
@@ -159,4 +160,38 @@ function testMenuLanguage() {
     $this->assertNoField('edit-langcode', 'The language selector field was hidden the page');
   }
 
+  /**
+   * Tests menu configuration is still English after English has been deleted.
+   */
+  function testMenuLanguageRemovedEnglish() {
+    // Create a test menu to test language settings.
+    // Machine name has to be lowercase.
+    $menu_name = Unicode::strtolower($this->randomName(16));
+    $edit = array(
+      'id' => $menu_name,
+      'description' => '',
+      'label' =>  $this->randomString(),
+      'langcode' => 'en',
+    );
+    $this->drupalPost('admin/structure/menu/add', $edit, t('Save'));
+
+    // Check that the language settings were saved.
+    // The menu name should have been prefixed.
+    $menu_name = 'menu-' . $menu_name;
+    $menu = menu_load($menu_name);
+    $this->assertEqual($menu->langcode, 'en');
+
+    // Remove English language. To do that another language has to be set as
+    // default.
+    $language = language_load('aa');
+    $language->default = TRUE;
+    language_save($language);
+    language_delete('en');
+
+    // Save the menu again and check if the language is still the same.
+    $this->drupalPost("admin/structure/menu/manage/$menu_name", array(), t('Save'));
+    $menu = menu_load($menu_name);
+    $this->assertEqual($menu->langcode, 'en');
+  }
+
 }
