diff --git a/core/modules/menu/lib/Drupal/menu/MenuFormController.php b/core/modules/menu/lib/Drupal/menu/MenuFormController.php
index c51678f6b52cfc64ebc8ad1933b993b5a7803b0e..072a65e8659db219a72ab21c2efe3eed96afe1a3 100644
--- a/core/modules/menu/lib/Drupal/menu/MenuFormController.php
+++ b/core/modules/menu/lib/Drupal/menu/MenuFormController.php
@@ -64,22 +64,22 @@ public function form(array $form, array &$form_state, EntityInterface $menu) {
       $form['links'] = menu_overview_form($form['links'], $form_state);
     }
 
-    $form['actions'] = array('#type' => 'actions');
-    $form['actions']['submit'] = array(
-      '#type' => 'submit',
-      '#value' => t('Save'),
-      '#button_type' => 'primary',
-    );
-    // Only custom menus may be deleted.
-    $form['actions']['delete'] = array(
-      '#type' => 'submit',
-      '#value' => t('Delete'),
-      '#access' => !$menu->isNew() && !isset($system_menus[$menu->id()]),
-    );
-
     return $form;
   }
 
+  /**
+   * Overrides Drupal\Core\Entity\EntityFormController::actions().
+   */
+  protected function actions(array $form, array &$form_state) {
+    $actions = parent::actions($form, $form_state);
+    $menu = $this->getEntity($form_state);
+
+    $system_menus = menu_list_system_menus();
+    $actions['delete']['#access'] = !$menu->isNew() && !isset($system_menus[$menu->id()]);
+
+    return $actions;
+  }
+
   /**
    * Overrides Drupal\Core\Entity\EntityFormController::save().
    */
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
index 75532b02a225e36002b08dba01ceec4d03408a94..88283cc2a85e63897379ba9028c0630ec2d94582 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
+++ b/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
@@ -182,6 +182,14 @@ function deleteCustomMenu($menu) {
     // Test if all menu links associated to the menu were removed from database.
     $result = entity_load_multiple_by_properties('menu_link', array('menu_name' => $menu_name));
     $this->assertFalse($result, 'All menu links associated to the custom menu were deleted.');
+
+    // Make sure there's no delete button on system menus.
+    $this->drupalGet('admin/structure/menu/manage/main/edit');
+    $this->assertNoRaw('edit-delete', 'The delete button was not found');
+
+    // Try to delete the main menu.
+    $this->drupalGet('admin/structure/menu/manage/main/delete');
+    $this->assertText(t('You are not authorized to access this page.'));
   }
 
   /**
diff --git a/core/modules/menu/menu.admin.inc b/core/modules/menu/menu.admin.inc
index a04fca5b158235974117e95b44045960828484f0..56d51107a36707b7c5cddf9bbbaf30c73634d779 100644
--- a/core/modules/menu/menu.admin.inc
+++ b/core/modules/menu/menu.admin.inc
@@ -8,6 +8,7 @@
 use Drupal\menu_link\Plugin\Core\Entity\MenuLink;
 use Drupal\system\Plugin\Core\Entity\Menu;
 use Drupal\Component\Utility\NestedArray;
+use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
 
 /**
  * Menu callback which shows an overview page of all the custom menus and their descriptions.