diff --git a/core/modules/shortcut/lib/Drupal/shortcut/ShortcutAccessController.php b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutAccessController.php
index da0e616..572423e 100644
--- a/core/modules/shortcut/lib/Drupal/shortcut/ShortcutAccessController.php
+++ b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutAccessController.php
@@ -21,6 +21,7 @@ class ShortcutAccessController extends EntityAccessController {
    */
   protected function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account) {
     switch ($operation) {
+      case 'create':
       case 'update':
         if (user_access('administer shortcuts', $account)) {
           return TRUE;
diff --git a/core/modules/shortcut/shortcut.admin.inc b/core/modules/shortcut/shortcut.admin.inc
index d2d3a60..709fd60 100644
--- a/core/modules/shortcut/shortcut.admin.inc
+++ b/core/modules/shortcut/shortcut.admin.inc
@@ -172,14 +172,6 @@ function shortcut_set_switch_submit($form, &$form_state) {
 }
 
 /**
- * Page callback: provides the shortcut set creation form.
- */
-function shortcut_set_add() {
-  $entity = entity_create('shortcut', array());
-  return Drupal::entityManager()->getForm($entity);
-}
-
-/**
  * Form callback: builds the form for customizing shortcut sets.
  *
  * @param $form
diff --git a/core/modules/shortcut/shortcut.module b/core/modules/shortcut/shortcut.module
index d49ce04..2e88626 100644
--- a/core/modules/shortcut/shortcut.module
+++ b/core/modules/shortcut/shortcut.module
@@ -91,10 +91,8 @@ function shortcut_menu() {
   );
   $items['admin/config/user-interface/shortcut/add-set'] = array(
     'title' => 'Add shortcut set',
-    'page callback' => 'shortcut_set_add',
-    'access arguments' => array('administer shortcuts'),
-    'type' => MENU_LOCAL_ACTION,
-    'file' => 'shortcut.admin.inc',
+    'route_name' => 'shortcut_set_add',
+    'type' => MENU_SIBLING_LOCAL_TASK,
   );
   $items['admin/config/user-interface/shortcut/manage/%shortcut_set'] = array(
     'title' => 'Edit shortcuts',
@@ -592,3 +590,18 @@ function shortcut_library_info() {
 
   return $libraries;
 }
+
+/**
+ * Implements hook_local_actions.
+ */
+function shortcut_local_actions() {
+  return array(
+    array(
+      'route_name' => 'shortcut_set_add',
+      'title' => t('Add shortcut set'),
+      'appears_on' => array(
+        'shortcut_set_admin',
+      ),
+    ),
+  );
+}
diff --git a/core/modules/shortcut/shortcut.routing.yml b/core/modules/shortcut/shortcut.routing.yml
index df1dc1c..ec6ca86 100644
--- a/core/modules/shortcut/shortcut.routing.yml
+++ b/core/modules/shortcut/shortcut.routing.yml
@@ -19,6 +19,13 @@ shortcut_set_admin:
   requirements:
     _permission: 'administer shortcuts'
 
+shortcut_set_add:
+  pattern: '/admin/config/user-interface/shortcut/add-set'
+  defaults:
+    _entity_form: 'shortcut.add'
+  requirements:
+    _entity_create_access: 'shortcut'
+
 shortcut_set_edit:
   pattern: '/admin/config/user-interface/shortcut/manage/{shortcut}/edit'
   defaults:
