diff --git a/core/modules/migrate/src/Plugin/migrate/process/MigrationLookup.php b/core/modules/migrate/src/Plugin/migrate/process/MigrationLookup.php
index 835fd69..8edfa14 100644
--- a/core/modules/migrate/src/Plugin/migrate/process/MigrationLookup.php
+++ b/core/modules/migrate/src/Plugin/migrate/process/MigrationLookup.php
@@ -184,7 +184,7 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
         $source_id_values[$migration_id] = $value;
       }
       // Break out of the loop as soon as a destination ID is found.
-      if ($destination_ids = $migration->getIdMap()->lookupDestinationId($source_id_values[$migration_id])) {
+      if ($destination_ids = $migration->getIdMap()->lookupDestinationIds($source_id_values[$migration_id])) {
         break;
       }
     }
@@ -234,8 +234,14 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
       }
     }
     if ($destination_ids) {
-      if (count($destination_ids) == 1) {
-        return reset($destination_ids);
+      if (count($destination_ids) > 1) {
+        return array_map(function ($a) {
+          return reset($a);
+        }, $destination_ids);
+      }
+      elseif (count($destination_ids) == 1) {
+        $destination_id = reset($destination_ids);
+        return reset($destination_id);
       }
       else {
         return $destination_ids;
diff --git a/core/modules/migrate/tests/src/Unit/process/MigrationLookupTest.php b/core/modules/migrate/tests/src/Unit/process/MigrationLookupTest.php
index f30c184..81ee766 100644
--- a/core/modules/migrate/tests/src/Unit/process/MigrationLookupTest.php
+++ b/core/modules/migrate/tests/src/Unit/process/MigrationLookupTest.php
@@ -30,7 +30,7 @@ public function testTransformWithStubSkipping() {
     $destination_id_map = $this->prophesize(MigrateIdMapInterface::class);
     $destination_migration = $this->prophesize(MigrationInterface::class);
     $destination_migration->getIdMap()->willReturn($destination_id_map->reveal());
-    $destination_id_map->lookupDestinationId([1])->willReturn(NULL);
+    $destination_id_map->lookupDestinationIds([1])->willReturn(NULL);
 
     // Ensure the migration plugin manager returns our migration.
     $migration_plugin_manager->createInstances(Argument::exact(['destination_migration']))
@@ -62,7 +62,7 @@ public function testTransformWithStubbing() {
     $destination_migration->getIdMap()->willReturn($destination_id_map->reveal());
     $migration_plugin_manager->createInstances(['destination_migration'])
       ->willReturn(['destination_migration' => $destination_migration->reveal()]);
-    $destination_id_map->lookupDestinationId([1])->willReturn(NULL);
+    $destination_id_map->lookupDestinationIds([1])->willReturn(NULL);
     $destination_id_map->saveIdMapping(Argument::any(), Argument::any(), MigrateIdMapInterface::STATUS_NEEDS_UPDATE)->willReturn(NULL);
 
     $configuration = [
@@ -130,7 +130,7 @@ public function testSuccessfulLookup($source_id_values, $destination_id_values,
     $migration_plugin->id()->willReturn(uniqid());
 
     $id_map = $this->prophesize(MigrateIdMapInterface::class);
-    $id_map->lookupDestinationId($source_id_values)->willReturn($destination_id_values);
+    $id_map->lookupDestinationIds($source_id_values)->willReturn([$destination_id_values]);
     $migration_plugin->getIdMap()->willReturn($id_map->reveal());
 
     $migration_plugin_manager->createInstances(['foobaz'])
