diff --git a/core/modules/migrate/src/Plugin/migrate/process/MigrationLookup.php b/core/modules/migrate/src/Plugin/migrate/process/MigrationLookup.php
index 835fd691c9..4f53040702 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,13 @@ 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) {
+        return reset(reset($destination_ids));
       }
       else {
         return $destination_ids;
