diff --git a/core/modules/migrate/src/Plugin/migrate/destination/Entity.php b/core/modules/migrate/src/Plugin/migrate/destination/Entity.php
index 69ff3e5..21e797b 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/Entity.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/Entity.php
@@ -11,6 +11,7 @@
 use Drupal\Core\Entity\DependencyTrait;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\Core\TypedData\TranslatableInterface;
 use Drupal\migrate\Entity\MigrationInterface;
 use Drupal\migrate\Row;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -121,7 +122,14 @@ protected function getEntity(Row $row, array $old_destination_id_values) {
       $entity = $this->storage->create($values);
       $entity->enforceIsNew();
     }
-    return $entity;
+
+    if ($entity instanceof TranslatableInterface && isset($this->configuration['language_property'])) {
+      $language = $this->configuration['language_property'];
+      return $entity->getTranslation($row->getDestinationProperty($language));
+    }
+    else {
+      return $entity;
+    }
   }
 
   /**
diff --git a/core/modules/node/migration_templates/d6_node.yml b/core/modules/node/migration_templates/d6_node.yml
index 2f9ba5b..36c59a1 100644
--- a/core/modules/node/migration_templates/d6_node.yml
+++ b/core/modules/node/migration_templates/d6_node.yml
@@ -39,6 +39,7 @@ process:
 
 destination:
   plugin: entity:node
+  language_property: langcode
 migration_dependencies:
   required:
     - d6_user
diff --git a/core/modules/node/src/Plugin/migrate/source/d6/Node.php b/core/modules/node/src/Plugin/migrate/source/d6/Node.php
index b8a4d7d..3fc978a 100644
--- a/core/modules/node/src/Plugin/migrate/source/d6/Node.php
+++ b/core/modules/node/src/Plugin/migrate/source/d6/Node.php
@@ -128,6 +128,10 @@ public function prepareRow(Row $row) {
       }
     }
 
+    if ($translation_source = $row->getSourceProperty('tnid')) {
+      $row->setSourceProperty('nid', $translation_source);
+    }
+
     return parent::prepareRow($row);
   }
 
