diff --git a/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php b/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php
index 7b0bef7..52bc4d7 100644
--- a/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php
+++ b/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php
@@ -254,7 +254,7 @@ private function doAdminTests($user) {
 
     // Add forum to the Tools menu.
     $edit = array();
-    $this->drupalPost('admin/structure/menu/manage/tools', $edit, t('Save configuration'));
+    $this->drupalPost('admin/structure/menu/manage/tools', $edit, t('Save'));
     $this->assertResponse(200);
 
     // Edit forum taxonomy.
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
index caf27e6..679d6c4 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
+++ b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
@@ -123,14 +123,14 @@ function addCustomMenuCRUD() {
     menu_save($menu);
 
     // Assert the new menu.
-    $this->drupalGet('admin/structure/menu/manage/' . $menu_name . '/edit');
+    $this->drupalGet('admin/structure/menu/manage/' . $menu_name);
     $this->assertRaw($title, 'Custom menu was added.');
 
     // Edit the menu.
     $new_title = $this->randomName(16);
     $menu['title'] = $new_title;
     menu_save($menu);
-    $this->drupalGet('admin/structure/menu/manage/' . $menu_name . '/edit');
+    $this->drupalGet('admin/structure/menu/manage/' . $menu_name);
     $this->assertRaw($new_title, 'Custom menu was edited.');
   }
 
@@ -261,10 +261,10 @@ function doMenuTests($menu_name = 'tools') {
     $this->disableMenuLink($item1);
     $edit = array();
 
-    // Note in the UI the 'mlid:x[hidden]' form element maps to enabled, or
-    // NOT hidden.
-    $edit['mlid:' . $item1['mlid'] . '[hidden]'] = TRUE;
-    $this->drupalPost('admin/structure/menu/manage/' . $item1['menu_name'], $edit, t('Save configuration'));
+    // Note in the UI the 'links[mlid:x][hidden]' form element maps to enabled,
+    // or NOT hidden.
+    $edit['links[mlid:' . $item1['mlid'] . '][hidden]'] = TRUE;
+    $this->drupalPost('admin/structure/menu/manage/' . $item1['menu_name'], $edit, t('Save'));
 
     // Verify in the database.
     $this->assertMenuLink($item1['mlid'], array('hidden' => 0));
diff --git a/core/modules/menu/menu.admin.inc b/core/modules/menu/menu.admin.inc
index 4a78495..c5cefd1 100644
--- a/core/modules/menu/menu.admin.inc
+++ b/core/modules/menu/menu.admin.inc
@@ -18,13 +18,9 @@ function menu_overview_page() {
     $row = array();
     $row[] = theme('menu_admin_overview', array('title' => $menu['title'], 'name' => $menu['menu_name'], 'description' => $menu['description']));
     $links = array();
-    $links['list'] = array(
-      'title' => t('list links'),
-      'href' => 'admin/structure/menu/manage/' . $menu['menu_name'],
-    );
     $links['edit'] = array(
       'title' => t('edit menu'),
-      'href' => 'admin/structure/menu/manage/' . $menu['menu_name'] . '/edit',
+      'href' => 'admin/structure/menu/manage/' . $menu['menu_name'],
     );
     $links['add'] = array(
       'title' => t('add link'),
@@ -60,20 +56,35 @@ function theme_menu_admin_overview($variables) {
 }
 
 /**
- * Form for editing an entire menu tree at once.
+ * Form constructor to edit an entire menu tree at once.
  *
  * Shows for one menu the menu links accessible to the current user and
  * relevant operations.
+ *
+ * This form constructor can be integrated as section into another form. It
+ * relies on the following keys in $form_state:
+ * - menu: A loaded menu definition, as returned by menu_load().
+ * - menu_overview_form_parents: An array containing the parent keys to this
+ *   form.
+ * Forms integrating this section should add menu_overview_form_submit() to the
+ * list of #submit handlers.
+ * @see menu_edit_menu()
  */
-function menu_overview_form($form, &$form_state, $menu) {
+function menu_overview_form($form, &$form_state) {
   global $menu_admin;
-  $form['#attached']['css'] = array(drupal_get_path('module', 'menu') . '/menu.admin.css');
+
+  // Ensure that menu_overview_form_submit() knows the parents of this form
+  // section.
+  $form['#tree'] = TRUE;
+  $form['#theme'] = 'menu_overview_form';
+  $form_state += array('menu_overview_form_parents' => array());
+
   $sql = "
     SELECT m.load_functions, m.to_arg_functions, m.access_callback, m.access_arguments, m.page_callback, m.page_arguments, m.title, m.title_callback, m.title_arguments, m.type, m.description, m.description_callback, m.description_arguments, ml.*
     FROM {menu_links} ml LEFT JOIN {menu_router} m ON m.path = ml.router_path
     WHERE ml.menu_name = :menu
     ORDER BY p1 ASC, p2 ASC, p3 ASC, p4 ASC, p5 ASC, p6 ASC, p7 ASC, p8 ASC, p9 ASC";
-  $result = db_query($sql, array(':menu' => $menu['menu_name']), array('fetch' => PDO::FETCH_ASSOC));
+  $result = db_query($sql, array(':menu' => $form_state['menu']['menu_name']), array('fetch' => PDO::FETCH_ASSOC));
   $links = array();
   foreach ($result as $item) {
     $links[] = $item;
@@ -88,19 +99,9 @@ function menu_overview_form($form, &$form_state, $menu) {
   $menu_admin = FALSE;
 
   $form = array_merge($form, _menu_overview_tree_form($tree, $delta));
-  $form['#menu'] =  $menu;
+  $form['#attached']['css'][] = drupal_get_path('module', 'menu') . '/menu.css';
+  $form['#empty_text'] = t('There are no menu links yet. <a href="@link">Add link</a>.', array('@link' => url('admin/structure/menu/manage/' . $form_state['menu']['menu_name'] .'/add')));
 
-  if (element_children($form)) {
-    $form['actions'] = array('#type' => 'actions');
-    $form['actions']['submit'] = array(
-      '#type' => 'submit',
-      '#value' => t('Save configuration'),
-      '#button_type' => 'primary',
-    );
-  }
-  else {
-    $form['#empty_text'] = t('There are no menu links yet. <a href="@link">Add link</a>.', array('@link' => url('admin/structure/menu/manage/'. $form['#menu']['menu_name'] .'/add')));
-  }
   return $form;
 }
 
@@ -196,15 +197,21 @@ function _menu_overview_tree_form($tree, $delta = 50) {
  *
  * @see menu_overview_form()
  */
-function menu_overview_form_submit($form, &$form_state) {
+function menu_overview_form_submit($complete_form, &$form_state) {
+  $parents = $form_state['menu_overview_form_parents'];
+  $input = drupal_array_get_nested_value($form_state['input'], $parents);
+  $form = &drupal_array_get_nested_value($complete_form, $parents);
+
   // When dealing with saving menu items, the order in which these items are
   // saved is critical. If a changed child item is saved before its parent,
   // the child item could be saved with an invalid path past its immediate
   // parent. To prevent this, save items in the form in the same order they
   // are sent by $_POST, ensuring parents are saved first, then their children.
   // See http://drupal.org/node/181126#comment-632270
-  $order = array_flip(array_keys($form_state['input'])); // Get the $_POST order.
-  $form = array_intersect_key(array_merge($order, $form), $form); // Update our original form with the new order.
+  // Get the $_POST order.
+  $order = array_flip(array_keys($input));
+  // Update our original form with the new order.
+  $form = array_intersect_key(array_merge($order, $form), $form);
 
   $updated_items = array();
   $fields = array('weight', 'plid');
@@ -232,7 +239,6 @@ function menu_overview_form_submit($form, &$form_state) {
     $item['customized'] = 1;
     menu_link_save($item);
   }
-  drupal_set_message(t('Your configuration has been saved.'));
 }
 
 /**
@@ -482,12 +488,15 @@ function menu_edit_item_submit($form, &$form_state) {
  */
 function menu_edit_menu($form, &$form_state, $type, $menu = array()) {
   $system_menus = menu_list_system_menus();
+
   $menu += array(
     'menu_name' => '',
     'old_name' => !empty($menu['menu_name']) ? $menu['menu_name'] : '',
     'title' => '',
     'description' => '',
   );
+  $form_state['menu'] = &$menu;
+
   // Allow menu_edit_menu_submit() and other form submit handlers to determine
   // whether the menu already exists.
   $form['#insert'] = empty($menu['old_name']);
@@ -495,6 +504,7 @@ function menu_edit_menu($form, &$form_state, $type, $menu = array()) {
     '#type' => 'value',
     '#value' => $menu['old_name'],
   );
+  $form['#submit'][] = 'menu_edit_menu_submit';
 
   $form['title'] = array(
     '#type' => 'textfield',
@@ -521,11 +531,37 @@ function menu_edit_menu($form, &$form_state, $type, $menu = array()) {
     '#disabled' => !empty($menu['old_name']) || isset($system_menus[$menu['menu_name']]),
   );
 
+  // Hide the menu description field unless an "edit description" checkbox is
+  // selected. This prevents the list of menu links from being pushed too far
+  // down the page.
+  $form['description_toggle'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Edit description'),
+  );
   $form['description'] = array(
     '#type' => 'textarea',
     '#title' => t('Description'),
     '#default_value' => $menu['description'],
+    '#states' => array(
+      'visible' => array(
+        ':input[name="description_toggle"]' => array('checked' => TRUE),
+      ),
+    ),
   );
+
+  // Add menu links administration form for existing menus.
+  if (!empty($menu['old_name'])) {
+    // Form API supports to construct and validate self-contained sections
+    // within forms, but does not allow to handle the form section's submission
+    // equally separated yet. Therefore, we use a $form_state key to point to
+    // the parents of the form section.
+    // @see menu_overview_form_submit()
+    $form_state['menu_overview_form_parents'] = array('links');
+    $form['links'] = array();
+    $form['links'] = menu_overview_form($form['links'], $form_state);
+    $form['#submit'][] = 'menu_overview_form_submit';
+  }
+
   $form['actions'] = array('#type' => 'actions');
   $form['actions']['submit'] = array(
     '#type' => 'submit',
diff --git a/core/modules/menu/menu.module b/core/modules/menu/menu.module
index ff24720..d11a73d 100644
--- a/core/modules/menu/menu.module
+++ b/core/modules/menu/menu.module
@@ -98,20 +98,14 @@ function menu_menu() {
     'file' => 'menu.admin.inc',
   );
   $items['admin/structure/menu/manage/%menu'] = array(
-    'title' => 'Customize menu',
+    'title' => 'Edit menu',
     'page callback' => 'drupal_get_form',
-    'page arguments' => array('menu_overview_form', 4),
+    'page arguments' => array('menu_edit_menu', 'edit', 4),
     'title callback' => 'menu_overview_title',
     'title arguments' => array(4),
     'access arguments' => array('administer menu'),
     'file' => 'menu.admin.inc',
   );
-  $items['admin/structure/menu/manage/%menu/list'] = array(
-    'title' => 'List links',
-    'weight' => -10,
-    'type' => MENU_DEFAULT_LOCAL_TASK,
-    'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
-  );
   $items['admin/structure/menu/manage/%menu/add'] = array(
     'title' => 'Add link',
     'page callback' => 'drupal_get_form',
@@ -122,12 +116,9 @@ function menu_menu() {
   );
   $items['admin/structure/menu/manage/%menu/edit'] = array(
     'title' => 'Edit menu',
-    'page callback' => 'drupal_get_form',
-    'page arguments' => array('menu_edit_menu', 'edit', 4),
-    'access arguments' => array('administer menu'),
-    'type' => MENU_LOCAL_TASK,
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -10,
     'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
-    'file' => 'menu.admin.inc',
   );
   $items['admin/structure/menu/manage/%menu/delete'] = array(
     'title' => 'Delete menu',
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserAccountLinksTests.php b/core/modules/user/lib/Drupal/user/Tests/UserAccountLinksTests.php
index 7190521..6780cf7 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserAccountLinksTests.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserAccountLinksTests.php
@@ -74,13 +74,13 @@ function testDisabledAccountLink() {
 
     // Verify that the 'My account' link is enabled.
     $this->drupalGet('admin/structure/menu/manage/account');
-    $this->assertFieldChecked('edit-mlid2-hidden', "The 'My account' link is enabled by default.");
+    $this->assertFieldChecked('edit-links-mlid2-hidden', "The 'My account' link is enabled by default.");
 
     // Disable the 'My account' link.
     $edit = array(
-      'mlid:2[hidden]' => FALSE,
+      'links[mlid:2][hidden]' => FALSE,
     );
-    $this->drupalPost('admin/structure/menu/manage/account', $edit, t('Save configuration'));
+    $this->drupalPost('admin/structure/menu/manage/account', $edit, t('Save'));
 
     // Get the homepage.
     $this->drupalGet('<front>');
