diff --git a/typo3/sysext/core/Classes/DataHandling/PlainDataResolver.php b/typo3/sysext/core/Classes/DataHandling/PlainDataResolver.php
index 375075ac95acf2f57dabc7a84083de7ba65675bf..cd2c0c1637c8bb615e978520feb38e2235b87b3b 100644
--- a/typo3/sysext/core/Classes/DataHandling/PlainDataResolver.php
+++ b/typo3/sysext/core/Classes/DataHandling/PlainDataResolver.php
@@ -136,17 +136,21 @@ class PlainDataResolver
             return $this->resolvedIds;
         }
 
-        $ids = $this->reindex(
-            $this->processVersionOverlays($this->liveIds)
-        );
-        $ids = $this->reindex(
-            $this->processSorting($ids)
-        );
-        $ids = $this->reindex(
-            $this->applyLiveIds($ids)
-        );
+        $this->resolvedIds = $this->processVersionOverlays($this->liveIds);
+        if ($this->resolvedIds !== $this->liveIds) {
+            $this->resolvedIds = $this->reindex($this->resolvedIds);
+        }
+
+        $tempIds = $this->processSorting($this->resolvedIds);
+        if ($tempIds !== $this->resolvedIds) {
+            $this->resolvedIds = $this->reindex($tempIds);
+        }
+
+        $tempIds = $this->applyLiveIds($this->resolvedIds);
+        if ($tempIds !== $this->resolvedIds) {
+            $this->resolvedIds = $this->reindex($tempIds);
+        }
 
-        $this->resolvedIds = $ids;
         return $this->resolvedIds;
     }