diff --git a/core/modules/menu/lib/Drupal/menu/MenuFormController.php b/core/modules/menu/lib/Drupal/menu/MenuFormController.php
index 072a65e..b010a7f 100644
--- a/core/modules/menu/lib/Drupal/menu/MenuFormController.php
+++ b/core/modules/menu/lib/Drupal/menu/MenuFormController.php
@@ -28,8 +28,6 @@ public function form(array $form, array &$form_state, EntityInterface $menu) {
       '#title' => t('Title'),
       '#default_value' => $menu->label(),
       '#required' => TRUE,
-      // The title of a system menu cannot be altered.
-      '#access' => !isset($system_menus[$menu->id()]),
     );
     $form['id'] = array(
       '#type' => 'machine_name',
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
index 88283cc..8e6003c 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
+++ b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
@@ -284,6 +284,22 @@ function testMenuQueryAndFragment() {
   }
 
   /**
+   * Test renaming built-in menu.
+   */
+  function testSystemMenuRename() {
+    $this->drupalLogin($this->big_user);
+    $edit = array(
+      'label' => $this->randomName(16),
+    );
+    $this->drupalPost('admin/structure/menu/manage/main/edit', $edit, t('Save'));
+
+    // Make sure menu shows up with new name in block addition.
+    $default_theme = variable_get('theme_default', 'stark');
+    $this->drupalget('admin/structure/block/list/block_plugin_ui:' . $default_theme . '/add');
+    $this->assertText($edit['label']);
+  }
+
+  /**
    * Add a menu link using the menu module UI.
    *
    * @param integer $plid Parent menu link id.
diff --git a/core/modules/system/lib/Drupal/system/Plugin/Derivative/SystemMenuBlock.php b/core/modules/system/lib/Drupal/system/Plugin/Derivative/SystemMenuBlock.php
index 8123732..5653aa2 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/Derivative/SystemMenuBlock.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/Derivative/SystemMenuBlock.php
@@ -42,11 +42,13 @@ public function getDerivativeDefinitions(array $base_plugin_definition) {
     foreach (menu_list_system_menus() as $menu => $name) {
       // The block deltas need to be prefixed with 'menu-', since the 'main'
       // menu would otherwise clash with the 'main' page content block.
-      $menu = "menu-$menu";
-      $this->derivatives[$menu] = $base_plugin_definition;
-      $this->derivatives[$menu]['delta'] = $menu;
-      $this->derivatives[$menu]['subject'] = $name;
-      $this->derivatives[$menu]['cache'] = DRUPAL_NO_CACHE;
+      $menu_key = 'menu-' . $menu;
+      $this->derivatives[$menu_key] = $base_plugin_definition;
+      $this->derivatives[$menu_key]['delta'] = $menu_key;
+      // It is possible that users changed the menu label.
+      $entity = entity_load('menu', $menu);
+      $this->derivatives[$menu_key]['subject'] = $entity->label();
+      $this->derivatives[$menu_key]['cache'] = DRUPAL_NO_CACHE;
     }
     return $this->derivatives;
   }
