diff --git a/core/modules/menu_link_content/migration_templates/d6_menu_links.yml b/core/modules/menu_link_content/migration_templates/d6_menu_links.yml
index e58b202..e6829a7 100644
--- a/core/modules/menu_link_content/migration_templates/d6_menu_links.yml
+++ b/core/modules/menu_link_content/migration_templates/d6_menu_links.yml
@@ -24,9 +24,13 @@ process:
     migration: menu
     source: menu_name
   'link/uri':
-    plugin: internal_uri
-    source:
-      - link_path
+    -
+      plugin: internal_uri
+      source:
+        - link_path
+    -
+      plugin: skip_on_empty
+      method: row
   'link/options': options
   external: external
   weight: weight
diff --git a/core/modules/menu_link_content/migration_templates/d7_menu_links.yml b/core/modules/menu_link_content/migration_templates/d7_menu_links.yml
index 3a3ac20..f24cbca 100644
--- a/core/modules/menu_link_content/migration_templates/d7_menu_links.yml
+++ b/core/modules/menu_link_content/migration_templates/d7_menu_links.yml
@@ -24,9 +24,13 @@ process:
     migration: menu
     source: menu_name
   'link/uri':
-    plugin: internal_uri
-    source:
+    -
+      plugin: internal_uri
+      source:
       - link_path
+    -
+      plugin: skip_on_empty
+      method: row
   'link/options': options
   route:
     plugin: route
diff --git a/core/modules/menu_link_content/src/Plugin/migrate/process/d6/InternalUri.php b/core/modules/menu_link_content/src/Plugin/migrate/process/d6/InternalUri.php
index caa68fe..23b6988 100644
--- a/core/modules/menu_link_content/src/Plugin/migrate/process/d6/InternalUri.php
+++ b/core/modules/menu_link_content/src/Plugin/migrate/process/d6/InternalUri.php
@@ -7,9 +7,13 @@
 
 namespace Drupal\menu_link_content\Plugin\migrate\process\d6;
 
+use Drupal\Core\Path\PathValidatorInterface;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\Core\Routing\RouteBuilderInterface;
 use Drupal\migrate\MigrateExecutableInterface;
 use Drupal\migrate\ProcessPluginBase;
 use Drupal\migrate\Row;
+use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
  * Process a path into an 'internal:' URI.
@@ -18,18 +22,70 @@
  *   id = "internal_uri"
  * )
  */
-class InternalUri extends ProcessPluginBase {
+class InternalUri extends ProcessPluginBase implements ContainerFactoryPluginInterface {
+
+  /**
+   * The path validator service.
+   *
+   * @var \Drupal\Core\Path\PathValidatorInterface
+   */
+  protected $pathValidator;
+
+  /**
+   * The router.builder service.
+   *
+   * @var \Drupal\Core\Routing\RouteBuilderInterface
+   */
+  protected $routerBuilder;
+
+  /**
+   * Whether or not the router has been rebuilt.
+   *
+   * @var bool
+   */
+  protected static $isRouterRebuilt = FALSE;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, PathValidatorInterface $path_validator, RouteBuilderInterface $route_builder) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition);
+    $this->pathValidator = $path_validator;
+    $this->routerBuilder = $route_builder;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
+    return new static(
+      $configuration,
+      $plugin_id,
+      $plugin_definition,
+      $container->get('path.validator'),
+      $container->get('router.builder')
+    );
+  }
 
   /**
    * {@inheritdoc}
    */
   public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
-    list($path) = $value;
+    // If the routes have not yet been rebuilt, rebuild them.
+    if (static::$isRouterRebuilt == FALSE) {
+      $this->routerBuilder->rebuild();
+      static::$isRouterRebuilt = TRUE;
+    }
 
+    list($path) = $value;
     if (parse_url($path, PHP_URL_SCHEME) === NULL) {
-      return 'internal:/' . $path;
+      if ($this->pathValidator->getUrlIfValidWithoutAccessCheck($path)) {
+        return 'internal:/' . $path;
+      }
+    }
+    else {
+      return $path;
     }
-    return $path;
   }
 
 }
