diff --git a/core/includes/menu.inc b/core/includes/menu.inc
index 94d0e57..27bb5c5 100644
--- a/core/includes/menu.inc
+++ b/core/includes/menu.inc
@@ -1659,7 +1659,13 @@ function theme_menu_link(array $variables) {
   if ($element['#below']) {
     $sub_menu = drupal_render($element['#below']);
   }
-  $output = l($element['#title'], $element['#href'], $element['#localized_options']);
+
+  if ($element['#href'] != '<none>') {
+    $output = l($element['#title'], $element['#href'], $element['#localized_options']);
+  }
+  else {
+    $output = '<span class="no-link">' . $element['#title'] . '</span>';
+  }
   return '<li' . new Attribute($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
 }
 
diff --git a/core/includes/path.inc b/core/includes/path.inc
index 911cfe0..7782548 100644
--- a/core/includes/path.inc
+++ b/core/includes/path.inc
@@ -195,7 +195,7 @@ function drupal_valid_path($path, $dynamic_allowed = FALSE) {
   global $menu_admin;
   // We indicate that a menu administrator is running the menu access check.
   $menu_admin = TRUE;
-  if ($path == '<front>' || url_is_external($path)) {
+  if ($path == '<front>' || $path == '<none>' || url_is_external($path)) {
     $item = array('access' => TRUE);
   }
   elseif ($dynamic_allowed && preg_match('/\/\%/', $path)) {
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index b38cc8f..15f30eb 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1755,7 +1755,12 @@ function theme_links($variables) {
         }
         else {
           // Pass in $link as $options, they share the same keys.
-          $item = l($link['title'], $link['href'], $link);
+          if ($link['href'] != '<none>') {
+            $item = l($link['title'], $link['href'], $link);
+          }
+          else {
+            $item = '<span class="no-link">' . $link['title'] . '</span>';
+          }
         }
       }
       // Handle title-only text items.
diff --git a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkFormController.php b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkFormController.php
index 8eb4458..b91cd27 100644
--- a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkFormController.php
+++ b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkFormController.php
@@ -117,7 +117,7 @@ public function form(array $form, array &$form_state) {
         '#title' => t('Path'),
         '#maxlength' => 255,
         '#default_value' => $path,
-        '#description' => t('The path for this menu link. This can be an internal Drupal path such as %add-node or an external URL such as %drupal. Enter %front to link to the front page.', array('%front' => '<front>', '%add-node' => 'node/add', '%drupal' => 'http://drupal.org')),
+        '#description' => t('The path for this menu link. This can be an internal Drupal path such as %add-node or an external URL such as %drupal. Enter %front to link to the front page. Enter %none for unlinked text.', array('%front' => '<front>', '%add-node' => 'node/add', '%drupal' => 'http://drupal.org', '%none' => '<none>')),
         '#required' => TRUE,
       );
     }
diff --git a/core/modules/menu_link/lib/Drupal/menu_link/Plugin/Core/Entity/MenuLink.php b/core/modules/menu_link/lib/Drupal/menu_link/Plugin/Core/Entity/MenuLink.php
index 7f227f8..21a9ee1 100644
--- a/core/modules/menu_link/lib/Drupal/menu_link/Plugin/Core/Entity/MenuLink.php
+++ b/core/modules/menu_link/lib/Drupal/menu_link/Plugin/Core/Entity/MenuLink.php
@@ -426,9 +426,9 @@ public static function postDelete(EntityStorageControllerInterface $storage_cont
    * {@inheritdoc}
    */
   public function preSave(EntityStorageControllerInterface $storage_controller) {
-    // This is the easiest way to handle the unique internal path '<front>',
+    // This is the easiest way to handle unique paths '<front>' and '<none>',
     // since a path marked as external does not need to match a router path.
-    $this->external = (url_is_external($this->link_path) || $this->link_path == '<front>') ? 1 : 0;
+    $this->external = (url_is_external($this->link_path) || $this->link_path == '<front>' || $this->link_path == '<none>') ? 1 : 0;
 
     // Try to find a parent link. If found, assign it and derive its menu.
     $parent_candidates = !empty($this->parentCandidates) ? $this->parentCandidates : array();
