diff --git a/typo3/sysext/frontend/Classes/Page/PageRepository.php b/typo3/sysext/frontend/Classes/Page/PageRepository.php
index 2504b5791d0229a1025a31eead266e452c5d4f8e..2d154e79d5c7fe008708d7be739e5fb026772f99 100644
--- a/typo3/sysext/frontend/Classes/Page/PageRepository.php
+++ b/typo3/sysext/frontend/Classes/Page/PageRepository.php
@@ -378,7 +378,7 @@ class PageRepository
             $origPage = reset($pagesInput);
             if (is_array($origPage)) {
                 // Make sure that only fields which exist in the first incoming record are overlaid!
-                $fieldArr = array_intersect($fieldArr, array_keys($origPage));
+                $fieldArr = array_intersect($fieldArr, array_keys($this->purgeComputedProperties($origPage)));
             }
             foreach ($pagesInput as $origPage) {
                 if (is_array($origPage)) {
@@ -1406,7 +1406,7 @@ class PageRepository
             }
             // Find pointed-to record.
             if ($moveID) {
-                $res = $this->getDatabaseConnection()->exec_SELECTquery(implode(',', array_keys($row)), $table, 'uid=' . (int)$moveID . $this->enableFields($table));
+                $res = $this->getDatabaseConnection()->exec_SELECTquery(implode(',', array_keys($this->purgeComputedProperties($row))), $table, 'uid=' . (int)$moveID . $this->enableFields($table));
                 $origRow = $this->getDatabaseConnection()->sql_fetch_assoc($res);
                 $this->getDatabaseConnection()->sql_free_result($res);
                 if ($origRow) {