diff --git a/core/modules/menu_link_content/menu_link_content.module b/core/modules/menu_link_content/menu_link_content.module
index 6d33dce..84896c3 100644
--- a/core/modules/menu_link_content/menu_link_content.module
+++ b/core/modules/menu_link_content/menu_link_content.module
@@ -36,3 +36,30 @@ function menu_link_content_menu_delete(MenuInterface $menu) {
   $menu_links = $storage->loadByProperties(array('menu_name' => $menu->id()));
   $storage->delete($menu_links);
 }
+
+/**
+ * Implements hook_path_insert().
+ */
+function menu_link_content_path_insert($path) {
+  /** @var \Drupal\Core\Menu\MenuLinkManagerInterface $menu_link_manager */
+  $menu_link_manager = \Drupal::service('plugin.manager.menu.link');
+  // @todo Use link.uri once https://www.drupal.org/node/2391217 is in.
+  /* @var $entities  \Drupal\menu_link_content\MenuLinkContentInterface[] */
+  $entities = \Drupal::entityManager()
+    ->getStorage('menu_link_content')
+    ->loadByProperties(['link_uri' => 'user-path:' . $path['alias']]);
+  foreach ($entities as $menu_link) {
+    $menu_link_manager->updateDefinition($menu_link->getPluginId(), $menu_link->getPluginDefinition(), FALSE);
+  }
+
+}
+
+/**
+ * Implements hook_path_update().
+ */
+function menu_link_content_path_update($path) {
+  //
+  if ($path['alias'] != $path['original']['alias']) {
+    menu_link_content_path_insert($path);
+  }
+}
\ No newline at end of file
diff --git a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
index 420ebca..d72fc86 100644
--- a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
+++ b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
@@ -136,20 +136,15 @@ public function getChangedTime() {
   }
 
   /**
-   * Builds up the menu link plugin definition for this entity.
-   *
-   * @return array
-   *   The plugin definition corresponding to this entity.
-   *
-   * @see \Drupal\Core\Menu\MenuLinkTree::$defaults
+   * {@inheritdoc}
    */
-  protected function getPluginDefinition() {
+  public function getPluginDefinition() {
     $definition = array();
     $definition['class'] = 'Drupal\menu_link_content\Plugin\Menu\MenuLinkContent';
     $definition['menu_name'] = $this->getMenuName();
 
     if ($url_object = $this->getUrlObject()) {
-      if ($url_object->isExternal()) {
+      if (!$url_object->isRouted()) {
         $definition['url'] = $url_object->getUri();
       }
       else {
diff --git a/core/modules/menu_link_content/src/MenuLinkContentInterface.php b/core/modules/menu_link_content/src/MenuLinkContentInterface.php
index 3f385e4..650b3d2 100644
--- a/core/modules/menu_link_content/src/MenuLinkContentInterface.php
+++ b/core/modules/menu_link_content/src/MenuLinkContentInterface.php
@@ -92,4 +92,14 @@ public function getParentId();
    */
   public function getWeight();
 
+  /**
+   * Builds up the menu link plugin definition for this entity.
+   *
+   * @return array
+   *   The plugin definition corresponding to this entity.
+   *
+   * @see \Drupal\Core\Menu\MenuLinkTree::$defaults
+   */
+  public function getPluginDefinition();
+
 }
