diff --git a/core/modules/migrate/src/Plugin/migrate/destination/UrlAlias.php b/core/modules/migrate/src/Plugin/migrate/destination/UrlAlias.php
index db08749..e79ab39 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/UrlAlias.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/UrlAlias.php
@@ -12,6 +12,7 @@
 use Drupal\migrate\Row;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\Core\Language\Language;
 
 /**
  * @MigrateDestination(
@@ -64,10 +65,27 @@ public static function create(ContainerInterface $container, array $configuratio
    */
   public function import(Row $row, array $old_destination_id_values = array()) {
 
+    // First try to use the language from the alias.
+    $language = $row->getDestinationProperty('langcode');
+    // Next try to use the language from a entity the alias points to.
+    if (empty($language) && $row->hasSourceProperty('entity_language')) {
+      $language = $row->getSourceProperty('entity_language');
+    }
+    // Next try for the default language.
+    if (empty($language)) {
+      $default = \Drupal::languageManager()->getDefaultLanguage();
+      $language = $default->getId();
+    }
+    // Last make sure that the language exists on the destination site.
+    $languages = \Drupal::languageManager()->getLanguages();
+    if (empty($language) || empty($languages[$language])) {
+      $language = Language::LANGCODE_NOT_SPECIFIED;
+    }
+
     $path = $this->aliasStorage->save(
       $row->getDestinationProperty('source'),
       $row->getDestinationProperty('alias'),
-      $row->getDestinationProperty('langcode'),
+      $language,
       $old_destination_id_values ? $old_destination_id_values[0] : NULL
     );
 
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/UrlAlias.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/UrlAlias.php
index d9b08da..d4cd4a1 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/UrlAlias.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/UrlAlias.php
@@ -21,8 +21,11 @@ class UrlAlias extends DrupalSqlBase {
    * {@inheritdoc}
    */
   public function query() {
+
     $query = $this->select('url_alias', 'ua')
       ->fields('ua', array('pid', 'src', 'dst', 'language'));
+    $query->addField('n', 'language', 'entity_language');
+    $query->leftJoin('node', 'n', "CONCAT('node/', n.nid) = ua.src");
     $query->orderBy('pid');
 
     return $query;
@@ -37,6 +40,7 @@ public function fields() {
       'src' => $this->t('The internal path.'),
       'dst' => $this->t('The user set path alias.'),
       'language' => $this->t('The language code of the url alias.'),
+      'entity_language' => $this->t('The language code of any node that the url alias may point to.'),
     );
   }
 
