diff --git a/core/modules/file/migrations/d6_upload.yml b/core/modules/file/migrations/d6_upload.yml
index 1c34e5873c..a4e1dedf61 100644
--- a/core/modules/file/migrations/d6_upload.yml
+++ b/core/modules/file/migrations/d6_upload.yml
@@ -7,7 +7,6 @@ source:
   plugin: d6_upload
 process:
   nid: nid
-  vid: vid
   langcode:
     plugin: user_langcode
     source: language
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php
index 079eed08e9..4ce8b520e3 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php
@@ -220,6 +220,9 @@ protected function updateEntity(EntityInterface $entity, Row $row) {
         $language = $row->getDestinationProperty($property);
         if (!$entity->hasTranslation($language)) {
           $entity->addTranslation($language);
+          if ($this->storage->getEntityType()->isRevisionable()) {
+            $entity->setNewRevision(TRUE);
+          }
 
           // We're adding a translation, so delete it on rollback.
           $rollback_action = MigrateIdMapInterface::ROLLBACK_DELETE;
diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal6.php b/core/modules/migrate_drupal/tests/fixtures/drupal6.php
index bdbcda11d3..86f835f287 100644
--- a/core/modules/migrate_drupal/tests/fixtures/drupal6.php
+++ b/core/modules/migrate_drupal/tests/fixtures/drupal6.php
@@ -3066,6 +3066,18 @@
   'active' => '1',
   'locked' => '0',
 ))
+->values(array(
+  'field_name' => 'field_text_field',
+  'type' => 'text',
+  'global_settings' => 'a:4:{s:15:"text_processing";s:1:"0";s:10:"max_length";s:0:"";s:14:"allowed_values";s:0:"";s:18:"allowed_values_php";s:0:"";}',
+  'required' => '0',
+  'multiple' => '0',
+  'db_storage' => '1',
+  'module' => 'text',
+  'db_columns' => 'a:1:{s:5:"value";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"normal";s:8:"not null";b:0;s:8:"sortable";b:1;s:5:"views";b:1;}}',
+  'active' => '1',
+  'locked' => '0',
+))
 ->execute();
 $connection->schema()->createTable('content_node_field_instance', array(
   'fields' => array(
@@ -3519,6 +3531,18 @@
   'widget_module' => 'number',
   'widget_active' => '1',
 ))
+->values(array(
+  'field_name' => 'field_text_field',
+  'type_name' => 'page',
+  'weight' => '31',
+  'label' => 'Text',
+  'widget_type' => 'text_textfield',
+  'widget_settings' => 'a:4:{s:4:"rows";i:5;s:4:"size";s:2:"60";s:13:"default_value";a:1:{i:0;a:2:{s:5:"value";s:0:"";s:14:"_error_element";s:48:"default_value_widget][field_text_field][0][value";}}s:17:"default_value_php";N;}',
+  'display_settings' => 'a:5:{s:5:"label";a:2:{s:6:"format";s:5:"above";s:7:"exclude";i:0;}i:5;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}s:6:"teaser";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}s:4:"full";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}i:4;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}}',
+  'description' => '',
+  'widget_module' => 'text',
+  'widget_active' => '1',
+))
 ->execute();
 $connection->schema()->createTable('content_type_employee', array(
   'fields' => array(
@@ -3673,21 +3697,28 @@
 ->values(array(
   'vid' => '13',
   'nid' => '10',
-  'field_text_field_value' => NULL,
+  'field_text_field_value' => 'McCoy first revision (en)',
   'field_reference_nid' => '13',
   'field_reference_2_nid' => '13',
 ))
 ->values(array(
   'vid' => '14',
   'nid' => '11',
-  'field_text_field_value' => NULL,
+  'field_text_field_value' => 'McCoy first revision (fr)',
   'field_reference_nid' => '20',
   'field_reference_2_nid' => '20',
 ))
 ->values(array(
+  'vid' => '15',
+  'nid' => '12',
+  'field_text_field_value' => 'Zulu first revision (zu)',
+  'field_reference_nid' => NULL,
+  'field_reference_2_nid' => NULL,
+))
+->values(array(
   'vid' => '16',
   'nid' => '13',
-  'field_text_field_value' => NULL,
+  'field_text_field_value' => 'Zulu first revision (en)',
   'field_reference_nid' => '10',
   'field_reference_2_nid' => '10',
 ))
@@ -3698,7 +3729,34 @@
   'field_reference_nid' => '11',
   'field_reference_2_nid' => '11',
 ))
-->execute();
+->values(array(
+  'vid' => '24',
+  'nid' => '10',
+  'field_text_field_value' => 'McCoy current revision (en)',
+  'field_reference_nid' => '13',
+  'field_reference_2_nid' => '13',
+))
+->values(array(
+  'vid' => '25',
+  'nid' => '11',
+  'field_text_field_value' => 'McCoy current revision (fr)',
+  'field_reference_nid' => '20',
+  'field_reference_2_nid' => '20',
+))
+->values(array(
+  'vid' => '26',
+  'nid' => '12',
+  'field_text_field_value' => 'Zulu current revision (zu)',
+  'field_reference_nid' => NULL,
+  'field_reference_2_nid' => NULL,
+))
+->values(array(
+  'vid' => '27',
+  'nid' => '13',
+  'field_text_field_value' => 'Zulu current revision (en)',
+  'field_reference_nid' => '10',
+  'field_reference_2_nid' => '10',
+))->execute();
 $connection->schema()->createTable('content_type_story', array(
   'fields' => array(
     'nid' => array(
@@ -43993,14 +44051,14 @@
 ))
 ->values(array(
   'nid' => '10',
-  'vid' => '13',
+  'vid' => '24',
   'type' => 'page',
   'language' => 'en',
   'title' => 'The Real McCoy',
   'uid' => '1',
   'status' => '1',
   'created' => '1444238800',
-  'changed' => '1444238808',
+  'changed' => '1521927089',
   'comment' => '2',
   'promote' => '1',
   'moderate' => '0',
@@ -44010,14 +44068,14 @@
 ))
 ->values(array(
   'nid' => '11',
-  'vid' => '14',
+  'vid' => '25',
   'type' => 'page',
   'language' => 'fr',
   'title' => 'Le Vrai McCoy',
   'uid' => '1',
   'status' => '1',
   'created' => '1444239050',
-  'changed' => '1444239050',
+  'changed' => '1521927113',
   'comment' => '2',
   'promote' => '1',
   'moderate' => '0',
@@ -44027,14 +44085,14 @@
 ))
 ->values(array(
   'nid' => '12',
-  'vid' => '15',
+  'vid' => '26',
   'type' => 'page',
   'language' => 'zu',
   'title' => 'Abantu zulu',
   'uid' => '1',
   'status' => '1',
   'created' => '1444238800',
-  'changed' => '1444238808',
+  'changed' => '1521927131',
   'comment' => '0',
   'promote' => '0',
   'moderate' => '0',
@@ -44044,14 +44102,14 @@
 ))
 ->values(array(
   'nid' => '13',
-  'vid' => '16',
+  'vid' => '27',
   'type' => 'page',
   'language' => 'en',
   'title' => 'The Zulu People',
   'uid' => '1',
   'status' => '1',
   'created' => '1444239050',
-  'changed' => '1444239050',
+  'changed' => '1521927148',
   'comment' => '0',
   'promote' => '0',
   'moderate' => '0',
@@ -44775,10 +44833,10 @@
   'nid' => '10',
   'vid' => '13',
   'uid' => '1',
-  'title' => 'The Real McCoy',
+  'title' => 'The Real McCoy (first revision)',
   'body' => "In the original, Queen's English.",
   'teaser' => "In the original, Queen's English.",
-  'log' => '',
+  'log' => 'First revision (en)',
   'timestamp' => '1444238808',
   'format' => '1',
 ))
@@ -44786,10 +44844,10 @@
   'nid' => '11',
   'vid' => '14',
   'uid' => '1',
-  'title' => 'Le Vrai McCoy',
+  'title' => 'Le Vrai McCoy (first revision)',
   'body' => 'Ooh là là!',
   'teaser' => 'Ooh là là!',
-  'log' => '',
+  'log' => 'First revision (fr)',
   'timestamp' => '1444239050',
   'format' => '1',
 ))
@@ -44797,10 +44855,10 @@
   'nid' => '12',
   'vid' => '15',
   'uid' => '1',
-  'title' => 'Abantu zulu',
+  'title' => 'Abantu zulu (first revision)',
   'body' => 'Mr. Crusher, ready a collision course with the Borg ship.',
   'teaser' => 'Mr. Crusher, ready a collision course with the Borg ship.',
-  'log' => '',
+  'log' => 'First revision (zu)',
   'timestamp' => '1444238808',
   'format' => '1',
 ))
@@ -44808,10 +44866,10 @@
   'nid' => '13',
   'vid' => '16',
   'uid' => '1',
-  'title' => 'The Zulu People',
+  'title' => 'The Zulu People (first revision)',
   'body' => 'Mr. Crusher, ready a collision course with the Borg ship.',
   'teaser' => 'Mr. Crusher, ready a collision course with the Borg ship.',
-  'log' => '',
+  'log' => 'First revision (en)',
   'timestamp' => '1444239050',
   'format' => '1',
 ))
@@ -44925,6 +44983,50 @@
   'timestamp' => '1534014687',
   'format' => '1',
 ))
+->values(array(
+  'nid' => '10',
+  'vid' => '24',
+  'uid' => '1',
+  'title' => 'The Real McCoy',
+  'body' => "In the original, Queen's English.",
+  'teaser' => "In the original, Queen's English.",
+  'log' => 'Current revision (en)',
+  'timestamp' => '1521927089',
+  'format' => '1',
+))
+->values(array(
+  'nid' => '11',
+  'vid' => '25',
+  'uid' => '1',
+  'title' => 'Le Vrai McCoy',
+  'body' => 'Ooh là là!',
+  'teaser' => 'Ooh là là!',
+  'log' => 'Current revision (fr)',
+  'timestamp' => '1521927113',
+  'format' => '1',
+))
+->values(array(
+  'nid' => '12',
+  'vid' => '26',
+  'uid' => '1',
+  'title' => 'Abantu zulu',
+  'body' => 'Mr. Crusher, ready a collision course with the Borg ship.',
+  'teaser' => 'Mr. Crusher, ready a collision course with the Borg ship.',
+  'log' => 'Current revision (zu)',
+  'timestamp' => '1521927131',
+  'format' => '1',
+))
+->values(array(
+  'nid' => '13',
+  'vid' => '27',
+  'uid' => '1',
+  'title' => 'The Zulu People',
+  'body' => 'Mr. Crusher, ready a collision course with the Borg ship.',
+  'teaser' => 'Mr. Crusher, ready a collision course with the Borg ship.',
+  'log' => 'Current revision (en)',
+  'timestamp' => '1521927148',
+  'format' => '1',
+))
 ->execute();
 $connection->schema()->createTable('node_type', array(
   'fields' => array(
@@ -47626,7 +47728,7 @@
 ->values(array(
   'fid' => '3',
   'nid' => '12',
-  'vid' => '15',
+  'vid' => '26',
   'description' => 'file 12-15-3',
   'list' => '0',
   'weight' => '0',
diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal7.php b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
index 310fe3744f..a8754ec1f8 100644
--- a/core/modules/migrate_drupal/tests/fixtures/drupal7.php
+++ b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
@@ -4960,7 +4960,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '0',
   'body_value' => "...is that it's the absolute best show ever. Trust me, I would know.",
@@ -4972,7 +4972,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '0',
   'body_value' => "is - ...is that it's the absolute best show ever. Trust me, I would know.",
@@ -6642,7 +6642,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '0',
   'field_link_url' => '<front>',
@@ -6654,7 +6654,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '0',
   'field_link_url' => '<front>',
@@ -7142,7 +7142,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '0',
   'field_reference_target_id' => '5',
@@ -7152,7 +7152,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '0',
   'field_reference_target_id' => '4',
@@ -7162,7 +7162,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '4',
-  'revision_id' => '4',
+  'revision_id' => '10',
   'language' => 'und',
   'delta' => '0',
   'field_reference_target_id' => '3',
@@ -7172,7 +7172,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '5',
-  'revision_id' => '5',
+  'revision_id' => '11',
   'language' => 'und',
   'delta' => '0',
   'field_reference_target_id' => '2',
@@ -7278,7 +7278,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '0',
   'field_reference_2_target_id' => '5',
@@ -7288,7 +7288,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '0',
   'field_reference_2_target_id' => '4',
@@ -7298,7 +7298,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '4',
-  'revision_id' => '4',
+  'revision_id' => '10',
   'language' => 'und',
   'delta' => '0',
   'field_reference_2_target_id' => '3',
@@ -7308,7 +7308,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '5',
-  'revision_id' => '5',
+  'revision_id' => '11',
   'language' => 'und',
   'delta' => '0',
   'field_reference_2_target_id' => '2',
@@ -7391,7 +7391,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '0',
   'field_tags_tid' => '9',
@@ -7401,7 +7401,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '0',
   'field_tags_tid' => '9',
@@ -7411,7 +7411,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '1',
   'field_tags_tid' => '14',
@@ -7421,7 +7421,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '1',
   'field_tags_tid' => '14',
@@ -7431,7 +7431,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '2',
   'field_tags_tid' => '17',
@@ -7441,7 +7441,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '2',
   'field_tags_tid' => '17',
@@ -8282,6 +8282,64 @@
   'mysql_character_set' => 'utf8',
 ));
 
+$connection->insert('field_data_field_text_plain')
+->fields(array(
+  'entity_type',
+  'bundle',
+  'deleted',
+  'entity_id',
+  'revision_id',
+  'language',
+  'delta',
+  'field_text_plain_value',
+  'field_text_plain_format',
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '2',
+  'revision_id' => '8',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'DS9 current revision (en)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '3',
+  'revision_id' => '9',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'DS9 current revision (is)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '10',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'Firefly current revision (is)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '5',
+  'revision_id' => '11',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'Firefly current revision (en)',
+  'field_text_plain_format' => NULL,
+))
+->execute();
+
 $connection->schema()->createTable('field_data_field_text_plain_filtered', array(
   'fields' => array(
     'entity_type' => array(
@@ -9404,7 +9462,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '0',
   'body_value' => "...is that it's the absolute best show ever. Trust me, I would know.",
@@ -9416,7 +9474,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '0',
   'body_value' => "is - ...is that it's the absolute best show ever. Trust me, I would know.",
@@ -9428,7 +9486,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '4',
-  'revision_id' => '4',
+  'revision_id' => '10',
   'language' => 'und',
   'delta' => '0',
   'body_value' => 'is - Is that is it awesome.',
@@ -9440,7 +9498,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '5',
-  'revision_id' => '5',
+  'revision_id' => '11',
   'language' => 'und',
   'delta' => '0',
   'body_value' => 'en - Is that is it awesome.',
@@ -11106,7 +11164,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '0',
   'field_link_url' => '<front>',
@@ -11118,7 +11176,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '0',
   'field_link_url' => '<front>',
@@ -11630,6 +11688,16 @@
   'entity_type' => 'node',
   'bundle' => 'article',
   'deleted' => '0',
+  'entity_id' => '2',
+  'revision_id' => '8',
+  'language' => 'und',
+  'delta' => '0',
+  'field_reference_target_id' => '5',
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
   'entity_id' => '3',
   'revision_id' => '3',
   'language' => 'und',
@@ -11640,6 +11708,16 @@
   'entity_type' => 'node',
   'bundle' => 'article',
   'deleted' => '0',
+  'entity_id' => '3',
+  'revision_id' => '9',
+  'language' => 'und',
+  'delta' => '0',
+  'field_reference_target_id' => '4',
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
   'entity_id' => '4',
   'revision_id' => '4',
   'language' => 'und',
@@ -11656,6 +11734,26 @@
   'delta' => '0',
   'field_reference_target_id' => '2',
 ))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '10',
+  'language' => 'und',
+  'delta' => '0',
+  'field_reference_target_id' => '3',
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '5',
+  'revision_id' => '11',
+  'language' => 'und',
+  'delta' => '0',
+  'field_reference_target_id' => '2',
+))
 ->execute();
 $connection->schema()->createTable('field_revision_field_reference_2', array(
   'fields' => array(
@@ -11767,6 +11865,16 @@
   'entity_type' => 'node',
   'bundle' => 'article',
   'deleted' => '0',
+  'entity_id' => '2',
+  'revision_id' => '8',
+  'language' => 'und',
+  'delta' => '0',
+  'field_reference_2_target_id' => '5',
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
   'entity_id' => '3',
   'revision_id' => '3',
   'language' => 'und',
@@ -11777,6 +11885,16 @@
   'entity_type' => 'node',
   'bundle' => 'article',
   'deleted' => '0',
+  'entity_id' => '3',
+  'revision_id' => '9',
+  'language' => 'und',
+  'delta' => '0',
+  'field_reference_2_target_id' => '4',
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
   'entity_id' => '4',
   'revision_id' => '4',
   'language' => 'und',
@@ -11793,6 +11911,26 @@
   'delta' => '0',
   'field_reference_2_target_id' => '2',
 ))
+  ->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '10',
+  'language' => 'und',
+  'delta' => '0',
+  'field_reference_2_target_id' => '3',
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '5',
+  'revision_id' => '11',
+  'language' => 'und',
+  'delta' => '0',
+  'field_reference_2_target_id' => '2',
+))
 ->execute();
 $connection->schema()->createTable('field_revision_field_tags', array(
   'fields' => array(
@@ -11872,7 +12010,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '0',
   'field_tags_tid' => '9',
@@ -11882,7 +12020,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '0',
   'field_tags_tid' => '9',
@@ -11892,7 +12030,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '1',
   'field_tags_tid' => '14',
@@ -11902,7 +12040,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '1',
   'field_tags_tid' => '14',
@@ -11912,7 +12050,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '2',
-  'revision_id' => '2',
+  'revision_id' => '8',
   'language' => 'und',
   'delta' => '2',
   'field_tags_tid' => '17',
@@ -11922,7 +12060,7 @@
   'bundle' => 'article',
   'deleted' => '0',
   'entity_id' => '3',
-  'revision_id' => '3',
+  'revision_id' => '9',
   'language' => 'und',
   'delta' => '2',
   'field_tags_tid' => '17',
@@ -12772,6 +12910,108 @@
   'mysql_character_set' => 'utf8',
 ));
 
+$connection->insert('field_revision_field_text_plain')
+->fields(array(
+  'entity_type',
+  'bundle',
+  'deleted',
+  'entity_id',
+  'revision_id',
+  'language',
+  'delta',
+  'field_text_plain_value',
+  'field_text_plain_format',
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '2',
+  'revision_id' => '2',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'DS9 first revision (en)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '2',
+  'revision_id' => '8',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'DS9 current revision (en)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '3',
+  'revision_id' => '3',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'DS9 first revision (is)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '3',
+  'revision_id' => '9',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'DS9 current revision (is)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '4',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'Firefly first revision (is)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '10',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'Firefly current revision (is)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '5',
+  'revision_id' => '5',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'Firefly first revision (en)',
+  'field_text_plain_format' => NULL,
+))
+->values(array(
+  'entity_type' => 'node',
+  'bundle' => 'article',
+  'deleted' => '0',
+  'entity_id' => '5',
+  'revision_id' => '11',
+  'language' => 'und',
+  'delta' => '0',
+  'field_text_plain_value' => 'Firefly current revision (en)',
+  'field_text_plain_format' => NULL,
+))
+->execute();
+
 $connection->schema()->createTable('field_revision_field_text_plain_filtered', array(
   'fields' => array(
     'entity_type' => array(
@@ -38315,7 +38555,7 @@
 ))
 ->values(array(
   'nid' => '2',
-  'vid' => '2',
+  'vid' => '8',
   'type' => 'article',
   'language' => 'en',
   'title' => 'The thing about Deep Space 9',
@@ -38331,7 +38571,7 @@
 ))
 ->values(array(
   'nid' => '3',
-  'vid' => '3',
+  'vid' => '9',
   'type' => 'article',
   'language' => 'is',
   'title' => 'is - The thing about Deep Space 9',
@@ -38347,7 +38587,7 @@
 ))
 ->values(array(
   'nid' => '4',
-  'vid' => '4',
+  'vid' => '10',
   'type' => 'article',
   'language' => 'is',
   'title' => 'is - The thing about Firefly',
@@ -38363,7 +38603,7 @@
 ))
 ->values(array(
   'nid' => '5',
-  'vid' => '5',
+  'vid' => '11',
   'type' => 'article',
   'language' => 'en',
   'title' => 'en - The thing about Firefly',
@@ -38768,8 +39008,8 @@
   'nid' => '2',
   'vid' => '2',
   'uid' => '1',
-  'title' => 'The thing about Deep Space 9',
-  'log' => '',
+  'title' => 'The thing about Deep Space 9 (first revision)',
+  'log' => 'First revision (en)',
   'timestamp' => '1441306832',
   'status' => '1',
   'comment' => '2',
@@ -38780,8 +39020,8 @@
   'nid' => '3',
   'vid' => '3',
   'uid' => '1',
-  'title' => 'is - The thing about Deep Space 9',
-  'log' => '',
+  'title' => 'is - The thing about Deep Space 9 (first revision)',
+  'log' => 'First revision (is)',
   'timestamp' => '1471428152',
   'status' => '1',
   'comment' => '2',
@@ -38792,8 +39032,8 @@
   'nid' => '4',
   'vid' => '4',
   'uid' => '1',
-  'title' => 'is - The thing about Firefly',
-  'log' => '',
+  'title' => 'is - The thing about Firefly (first revision)',
+  'log' => 'First revision (is)',
   'timestamp' => '1478755274',
   'status' => '1',
   'comment' => '1',
@@ -38804,8 +39044,8 @@
   'nid' => '5',
   'vid' => '5',
   'uid' => '1',
-  'title' => 'en - The thing about Firefly',
-  'log' => '',
+  'title' => 'en - The thing about Firefly (first revision)',
+  'log' => 'First revision (en)',
   'timestamp' => '1478755314',
   'status' => '1',
   'comment' => '1',
@@ -38836,6 +39076,54 @@
   'promote' => '0',
   'sticky' => '0',
 ))
+->values(array(
+  'nid' => '2',
+  'vid' => '8',
+  'uid' => '1',
+  'title' => 'The thing about Deep Space 9',
+  'log' => 'Current revision (en)',
+  'timestamp' => '1441306832',
+  'status' => '1',
+  'comment' => '2',
+  'promote' => '1',
+  'sticky' => '0',
+))
+->values(array(
+  'nid' => '3',
+  'vid' => '9',
+  'uid' => '1',
+  'title' => 'is - The thing about Deep Space 9',
+  'log' => 'Current revision (is)',
+  'timestamp' => '1471428152',
+  'status' => '1',
+  'comment' => '2',
+  'promote' => '1',
+  'sticky' => '0',
+))
+->values(array(
+  'nid' => '4',
+  'vid' => '10',
+  'uid' => '1',
+  'title' => 'is - The thing about Firefly',
+  'log' => 'Current revision (is)',
+  'timestamp' => '1478755274',
+  'status' => '1',
+  'comment' => '1',
+  'promote' => '1',
+  'sticky' => '0',
+))
+->values(array(
+  'nid' => '5',
+  'vid' => '11',
+  'uid' => '1',
+  'title' => 'en - The thing about Firefly',
+  'log' => 'Current revision (en)',
+  'timestamp' => '1478755314',
+  'status' => '1',
+  'comment' => '1',
+  'promote' => '1',
+  'sticky' => '0',
+))
 ->execute();
 $connection->schema()->createTable('node_type', array(
   'fields' => array(
diff --git a/core/modules/migrate_drupal/tests/src/Kernel/d6/MigrateDrupal6TestBase.php b/core/modules/migrate_drupal/tests/src/Kernel/d6/MigrateDrupal6TestBase.php
index 0b2735c8ea..8339142975 100644
--- a/core/modules/migrate_drupal/tests/src/Kernel/d6/MigrateDrupal6TestBase.php
+++ b/core/modules/migrate_drupal/tests/src/Kernel/d6/MigrateDrupal6TestBase.php
@@ -108,6 +108,9 @@ protected function migrateContent(array $include = []) {
     }
     if (in_array('revisions', $include)) {
       $this->executeMigrations(['d6_node_revision']);
+      if (in_array('translations', $include)) {
+        $this->executeMigrations(['d6_node_revision_translation']);
+      }
     }
   }
 
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php
index 37de86efcd..eea7382aba 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php
@@ -68,8 +68,8 @@ protected function getEntityCounts() {
       'contact_message' => 0,
       'configurable_language' => 5,
       'editor' => 2,
-      'field_config' => 92,
-      'field_storage_config' => 66,
+      'field_config' => 93,
+      'field_storage_config' => 67,
       'file' => 7,
       'filter_format' => 7,
       'image_style' => 5,
diff --git a/core/modules/node/migrations/d6_node.yml b/core/modules/node/migrations/d6_node.yml
index 524448bc38..d0d503aa19 100644
--- a/core/modules/node/migrations/d6_node.yml
+++ b/core/modules/node/migrations/d6_node.yml
@@ -7,6 +7,8 @@ migration_tags:
 deriver: Drupal\node\Plugin\migrate\D6NodeDeriver
 source:
   plugin: d6_node
+  constants:
+    revision_translation_affected: true
 process:
   # In D6, nodes always have a tnid, but it's zero for untranslated nodes.
   # We normalize it to equal the nid in that case.
@@ -35,7 +37,7 @@ process:
   revision_uid: revision_uid
   revision_log: log
   revision_timestamp: timestamp
-
+  revision_translation_affected: constants/revision_translation_affected
 #  unmapped d6 fields.
 #  tnid
 #  translate
diff --git a/core/modules/node/migrations/d6_node_revision.yml b/core/modules/node/migrations/d6_node_revision.yml
index 732c9abe27..1e0ddabcab 100644
--- a/core/modules/node/migrations/d6_node_revision.yml
+++ b/core/modules/node/migrations/d6_node_revision.yml
@@ -7,6 +7,8 @@ migration_tags:
 deriver: Drupal\node\Plugin\migrate\D6NodeDeriver
 source:
   plugin: d6_node_revision
+  constants:
+    revision_translation_affected: true
 process:
   # If you are using this file to build a custom migration consider removing
   # the nid and vid fields to allow incremental migrations.
@@ -32,7 +34,7 @@ process:
   revision_uid: revision_uid
   revision_log: log
   revision_timestamp: timestamp
-
+  revision_translation_affected: constants/revision_translation_affected
 #  unmapped d6 fields.
 #  tnid
 #  translate
diff --git a/core/modules/node/migrations/d7_node.yml b/core/modules/node/migrations/d7_node.yml
index 5bf826164a..7ccae408c9 100644
--- a/core/modules/node/migrations/d7_node.yml
+++ b/core/modules/node/migrations/d7_node.yml
@@ -7,6 +7,8 @@ migration_tags:
 deriver: Drupal\node\Plugin\migrate\D7NodeDeriver
 source:
   plugin: d7_node
+  constants:
+    revision_translation_affected: true
 process:
   # If you are using this file to build a custom migration consider removing
   # the nid and vid fields to allow incremental migrations.
@@ -29,6 +31,7 @@ process:
   revision_uid: revision_uid
   revision_log: log
   revision_timestamp: timestamp
+  revision_translation_affected: constants/revision_translation_affected
 destination:
   plugin: entity:node
 migration_dependencies:
diff --git a/core/modules/node/migrations/d7_node_revision.yml b/core/modules/node/migrations/d7_node_revision.yml
index 7310b0d5b0..15722ed4b4 100644
--- a/core/modules/node/migrations/d7_node_revision.yml
+++ b/core/modules/node/migrations/d7_node_revision.yml
@@ -7,6 +7,8 @@ migration_tags:
 deriver: Drupal\node\Plugin\migrate\D7NodeDeriver
 source:
   plugin: d7_node_revision
+  constants:
+    revision_translation_affected: true
 process:
   # If you are using this file to build a custom migration consider removing
   # the nid and vid fields to allow incremental migrations.
@@ -26,6 +28,7 @@ process:
   revision_uid: revision_uid
   revision_log: log
   revision_timestamp: timestamp
+  revision_translation_affected: constants/revision_translation_affected
 destination:
   plugin: entity_revision:node
 migration_dependencies:
diff --git a/core/modules/node/src/Plugin/migrate/D6NodeDeriver.php b/core/modules/node/src/Plugin/migrate/D6NodeDeriver.php
index a8fa1d0bbe..1c5f7465d1 100644
--- a/core/modules/node/src/Plugin/migrate/D6NodeDeriver.php
+++ b/core/modules/node/src/Plugin/migrate/D6NodeDeriver.php
@@ -69,11 +69,10 @@ public static function create(ContainerInterface $container, $base_plugin_id) {
    * {@inheritdoc}
    */
   public function getDerivativeDefinitions($base_plugin_definition) {
-    if ($base_plugin_definition['id'] == 'd6_node_translation' && !$this->includeTranslations) {
+    if (in_array('translation', $base_plugin_definition['migration_tags']) && !$this->includeTranslations) {
       // Refuse to generate anything.
       return $this->derivatives;
     }
-
     $node_types = static::getSourcePlugin('d6_node_type');
     try {
       $node_types->checkRequirements();
@@ -99,7 +98,7 @@ public function getDerivativeDefinitions($base_plugin_definition) {
         // If this migration is based on the d6_node_revision migration or
         // is for translations of nodes, it should explicitly depend on the
         // corresponding d6_node variant.
-        if (in_array($base_plugin_definition['id'], ['d6_node_revision', 'd6_node_translation'])) {
+        if ($base_plugin_definition['id'] == ['d6_node_revision'] || in_array('translation', $base_plugin_definition['migration_tags'])) {
           $values['migration_dependencies']['required'][] = 'd6_node:' . $node_type;
         }
 
diff --git a/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php b/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php
index 629249888d..e0988294d0 100644
--- a/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php
+++ b/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\node\Plugin\migrate\source\d6;
 
-use Drupal\Core\Database\Query\SelectInterface;
-
 /**
  * Drupal 6 node revision source from database.
  *
@@ -40,11 +38,4 @@ public function getIds() {
     return $ids;
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function handleTranslations(SelectInterface $query) {
-    // @todo in https://www.drupal.org/node/2746541
-  }
-
 }
