diff --git a/core/modules/shortcut/shortcut.module b/core/modules/shortcut/shortcut.module
index 09ead75..a1ecd33 100644
--- a/core/modules/shortcut/shortcut.module
+++ b/core/modules/shortcut/shortcut.module
@@ -370,7 +370,7 @@ function shortcut_preprocess_page(&$variables) {
     else {
       $query['id'] = $shortcut_id;
       $link_text = shortcut_set_switch_access() ? t('Remove from %shortcut_set shortcuts', array('%shortcut_set' => $shortcut_set->label())) : t('Remove from shortcuts');
-      $route_name = 'shortcut.link_delete';
+      $route_name = 'shortcut.link_delete_inline';
       $route_parameters = array('shortcut' => $shortcut_id);
     }
 
diff --git a/core/modules/shortcut/shortcut.routing.yml b/core/modules/shortcut/shortcut.routing.yml
index 100fbc5..a3027e3 100644
--- a/core/modules/shortcut/shortcut.routing.yml
+++ b/core/modules/shortcut/shortcut.routing.yml
@@ -62,6 +62,14 @@ shortcut.link_edit:
   requirements:
     _entity_access: 'shortcut.update'
 
+shortcut.link_delete_inline:
+  path: '/admin/config/user-interface/shortcut/link/{shortcut}/delete-inline'
+  defaults:
+    _controller: 'Drupal\shortcut\Controller\ShortcutController::deleteShortcutLinkInline'
+  requirements:
+    _entity_access: 'shortcut.delete'
+    _csrf_token: 'TRUE'
+
 shortcut.link_delete:
   path: '/admin/config/user-interface/shortcut/link/{shortcut}/delete'
   defaults:
diff --git a/core/modules/shortcut/src/Controller/ShortcutController.php b/core/modules/shortcut/src/Controller/ShortcutController.php
index 8f3b481..0ca1bfd 100644
--- a/core/modules/shortcut/src/Controller/ShortcutController.php
+++ b/core/modules/shortcut/src/Controller/ShortcutController.php
@@ -9,6 +9,7 @@
 
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\shortcut\ShortcutSetInterface;
+use Drupal\shortcut\ShortcutInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -34,4 +35,27 @@ public function addForm(ShortcutSetInterface $shortcut_set) {
     return $this->entityFormBuilder()->getForm($shortcut, 'add');
   }
 
+  /**
+   * Deletes the selected shortcut.
+   *
+   * @param \Drupal\shortcut\ShortcutInterface $shortcut
+   *   The shortcut to delete.
+   *
+   * @return \Symfony\Component\HttpFoundation\RedirectResponse
+   *   A redirect response to the front page, or the previous location.
+   */
+  public function deleteShortcutLinkInline(ShortcutInterface $shortcut) {
+    $label = $shortcut->label();
+
+    try {
+      $shortcut->delete();
+      drupal_set_message($this->t('The shortcut %title has been deleted.', array('%title' => $label)));
+    }
+    catch (\Exception $e) {
+      drupal_set_message($this->t('Unable to delete the shortcut for %title.', array('%title' => $label)));
+    }
+
+    return $this->redirect('<front>');
+  }
+
 }
diff --git a/core/modules/shortcut/src/Tests/ShortcutLinksTest.php b/core/modules/shortcut/src/Tests/ShortcutLinksTest.php
index cf2d732..6f877cf 100644
--- a/core/modules/shortcut/src/Tests/ShortcutLinksTest.php
+++ b/core/modules/shortcut/src/Tests/ShortcutLinksTest.php
@@ -104,7 +104,6 @@ public function testShortcutQuickLink() {
     // Test the "Remove from shortcuts" link.
     $this->clickLink('Cron');
     $this->clickLink('Remove from Default shortcuts');
-    $this->drupalPostForm(NULL, array(), 'Delete');
     $this->assertText('The shortcut Cron has been deleted.');
     $this->assertNoLink('Cron', 'Shortcut link removed from page');
 
