diff --git a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php
index 91569d7fd916b63d5f375d7ac94b271c8793a397..53bce81b34d05213158627532b45bf2f3163eb30 100644
--- a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php
+++ b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php
@@ -78,8 +78,14 @@ class TcaSelectItems extends AbstractItemProvider implements FormDataProviderInt
 
             $removedItems = array_diff_key($removedItems, $fieldConfig['config']['items']);
 
-            // needed to determine the items for invalid values
             $currentDatabaseValuesArray = $this->processDatabaseFieldValue($result['databaseRow'], $fieldName);
+            // Check if it's a new record to respect TCAdefaults
+            if (!empty($fieldConfig['config']['MM']) && $result['command'] !== 'new') {
+                // Getting the current database value on a mm relation doesn't make sense since the amount of selected
+                // relations is stored in the field and not the uids of the items
+                $currentDatabaseValuesArray = [];
+            }
+
             $result['databaseRow'][$fieldName] = $currentDatabaseValuesArray;
 
             // add item values as keys to determine which items are stored in the database and should be preselected
diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSelectItemsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSelectItemsTest.php
index 5a14d7ac6e8ba1a21d0a872e760ea6d860ea0c2c..e82d0040af2c95f035e7f10032f6608871785664 100644
--- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSelectItemsTest.php
+++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSelectItemsTest.php
@@ -3441,7 +3441,7 @@ class TcaSelectItemsTest extends UnitTestCase
             24
         ];
 
-        $relationHandlerProphecy->start(2, 'foreignTable', 'aTable_foreignTable_mm', 42, 'aTable', $fieldConfig)->shouldBeCalled();
+        $relationHandlerProphecy->start('', 'foreignTable', 'aTable_foreignTable_mm', 42, 'aTable', $fieldConfig)->shouldBeCalled();
         $relationHandlerProphecy->getValueArray()->shouldBeCalled()->willReturn($relationHandlerUids);
 
         $expected = $input;
@@ -3877,8 +3877,8 @@ class TcaSelectItemsTest extends UnitTestCase
                     'command' => 'edit',
                     'effectivePid' => 42,
                     'databaseRow' => [
-                        'uid' => 'NEW1234',
-                        'aField' => '24,35',
+                        'uid' => 42,
+                        'aField' => '2',
                     ],
                     'processedTca' => [
                         'columns' => [
@@ -3895,7 +3895,9 @@ class TcaSelectItemsTest extends UnitTestCase
                         ],
                     ],
                 ],
-                [],
+                [
+                    'relationHandlerStartItemList' => '',
+                ],
                 []
             ],
             'Relation with MM table and maxitems = 1 processes field value (item count)' => [
@@ -3923,7 +3925,9 @@ class TcaSelectItemsTest extends UnitTestCase
                         ],
                     ],
                 ],
-                [],
+                [
+                    'relationHandlerStartItemList' => '',
+                ],
                 [
                     24
                 ]
@@ -3953,7 +3957,9 @@ class TcaSelectItemsTest extends UnitTestCase
                         ],
                     ],
                 ],
-                [],
+                [
+                    'relationHandlerStartItemList' => '',
+                ],
                 []
             ]
         ];
@@ -3969,7 +3975,7 @@ class TcaSelectItemsTest extends UnitTestCase
      */
     public function processSelectFieldSetsCorrectValuesForMmRelations(array $input, array $overrideRelationHandlerSettings, array $relationHandlerUids): void
     {
-        $field = $input['databaseRow']['aField'];
+        $field = $overrideRelationHandlerSettings['relationHandlerStartItemList'] ?? $input['databaseRow']['aField'];
         $foreignTable = $overrideRelationHandlerSettings['foreign_table'] ?? $input['processedTca']['columns']['aField']['config']['foreign_table'];
         $mmTable = $overrideRelationHandlerSettings['MM'] ?? $input['processedTca']['columns']['aField']['config']['MM'];
         $uid = $input['databaseRow']['uid'];