diff --git a/core/modules/block/src/Plugin/migrate/source/d7/BlockTranslation.php b/core/modules/block/src/Plugin/migrate/source/d7/BlockTranslation.php
index acf9e2b7c8ae544b9ef8fc2e230ea66ccd8c0515..cb8c1be4e1e4bad7c8aecbab4581dad4b061c7d1 100644
--- a/core/modules/block/src/Plugin/migrate/source/d7/BlockTranslation.php
+++ b/core/modules/block/src/Plugin/migrate/source/d7/BlockTranslation.php
@@ -45,11 +45,21 @@ public function query() {
         'language',
         'plid',
         'plural',
-        'i18n_status',
       ])
       ->condition('i18n_mode', 1);
     $query->leftjoin($this->blockTable, 'b', ('b.delta = i18n.objectid'));
     $query->leftjoin('locales_target', 'lt', 'lt.lid = i18n.lid');
+
+    // The i18n_string module adds a status column to locale_target. It was
+    // originally 'status' in a later revision it was named 'i18n_status'.
+    /** @var \Drupal\Core\Database\Schema $db */
+    if ($this->getDatabase()->schema()->fieldExists('locales_target', 'status')) {
+      $query->addField('lt', 'status', 'i18n_status');
+    }
+    if ($this->getDatabase()->schema()->fieldExists('locales_target', 'i18n_status')) {
+      $query->addField('lt', 'i18n_status', 'i18n_status');
+    }
+
     return $query;
   }
 
diff --git a/core/modules/block/tests/src/Kernel/Plugin/migrate/source/d7/BlockTranslationTest.php b/core/modules/block/tests/src/Kernel/Plugin/migrate/source/d7/BlockTranslationTest.php
index 01b2dced662c266ef0b5b141da6497aaf2cbc616..6f9279777fb168e1501a687298704dc67ccd4fd5 100644
--- a/core/modules/block/tests/src/Kernel/Plugin/migrate/source/d7/BlockTranslationTest.php
+++ b/core/modules/block/tests/src/Kernel/Plugin/migrate/source/d7/BlockTranslationTest.php
@@ -141,6 +141,13 @@ public function providerSource() {
       ],
     ];
 
+    // Change the name of the locale_target i18n status field.
+    $tests[1] = $tests[0];
+    foreach ($tests[1]['source_data']['locales_target'] as &$lt) {
+      $lt['status'] = $lt['i18n_status'];
+      unset($lt['i18n_status']);
+    }
+
     return $tests;
   }
 
diff --git a/core/modules/field/src/Plugin/migrate/source/d6/FieldOptionTranslation.php b/core/modules/field/src/Plugin/migrate/source/d6/FieldOptionTranslation.php
index bc2671a9c4a5dab8b97609ad5ea4577836795c23..578026fbb975547b2d34e363b1cb4c5e2c517bff 100644
--- a/core/modules/field/src/Plugin/migrate/source/d6/FieldOptionTranslation.php
+++ b/core/modules/field/src/Plugin/migrate/source/d6/FieldOptionTranslation.php
@@ -24,7 +24,6 @@ public function query() {
         'language',
         'plid',
         'plural',
-        'i18n_status',
       ])
       ->condition('i18n.type', 'field')
       ->condition('property', 'option\_%', 'LIKE')
@@ -39,6 +38,15 @@ public function query() {
     $query->addField('cnf', 'type');
     $query->addField('i18n', 'type', 'i18n_type');
 
+    // The i18n_string module adds a status column to locale_target. It was
+    // originally 'status' in a later revision it was named 'i18n_status'.
+    /** @var \Drupal\Core\Database\Schema $db */
+    if ($this->getDatabase()->schema()->fieldExists('locales_target', 'status')) {
+      $query->addField('lt', 'status', 'i18n_status');
+    }
+    if ($this->getDatabase()->schema()->fieldExists('locales_target', 'i18n_status')) {
+      $query->addField('lt', 'i18n_status');
+    }
     return $query;
   }
 
diff --git a/core/modules/field/tests/src/Kernel/Plugin/migrate/source/d6/FieldOptionTranslationTest.php b/core/modules/field/tests/src/Kernel/Plugin/migrate/source/d6/FieldOptionTranslationTest.php
index 8503a3f581fa8b652227a61400b50c8de1f3f233..fcf657e1596d844796ccec79bfe994159eb02df6 100644
--- a/core/modules/field/tests/src/Kernel/Plugin/migrate/source/d6/FieldOptionTranslationTest.php
+++ b/core/modules/field/tests/src/Kernel/Plugin/migrate/source/d6/FieldOptionTranslationTest.php
@@ -236,6 +236,14 @@ public function providerSource() {
         'i18n_status' => 0,
       ],
     ];
+
+    // Change the name of the locale_target i18n status field.
+    $test[1] = $test[0];
+    foreach ($test[1]['source_data']['locales_target'] as &$lt) {
+      $lt['status'] = $lt['i18n_status'];
+      unset($lt['i18n_status']);
+    }
+
     return $test;
   }