diff --git a/typo3/sysext/core/Classes/DataHandling/DataHandler.php b/typo3/sysext/core/Classes/DataHandling/DataHandler.php
index 769f5a2e7be9bf4eefe4a93eeeaf3b53c0c36451..b4a871a13591ea5cf6b24fc359a5310485ebc79e 100644
--- a/typo3/sysext/core/Classes/DataHandling/DataHandler.php
+++ b/typo3/sysext/core/Classes/DataHandling/DataHandler.php
@@ -4855,8 +4855,10 @@ class DataHandler implements LoggerAwareInterface
             $this->getRecordHistoryStore()->deleteRecord($table, $uid, $this->correlationId);
         }
 
-        // Update reference index:
+        // Update reference index with table/uid on left side (recuid)
         $this->updateRefIndex($table, $uid);
+        // Update reference index with table/uid on right side (ref_uid). Important if children of a relation are deleted / undeleted.
+        $this->registerReferenceUpdatesForReferencesToItem($table, $uid);
     }
 
     /**
@@ -7239,6 +7241,31 @@ class DataHandler implements LoggerAwareInterface
         $this->referenceIndexUpdater->registerForUpdate((string)$table, (int)$uid, (int)$this->BE_USER->workspace);
     }
 
+    /**
+     * Find reference index rows pointing to given table/uid combination and register them for update.
+     * Important in delete scenarios where a child is deleted to make sure any references to this child are dropped, too.
+     *
+     * @param string $table Table name, used as ref_table
+     * @param int $uid Record uid, used as ref_uid
+     */
+    protected function registerReferenceUpdatesForReferencesToItem(string $table, int $uid): void
+    {
+        $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_refindex');
+        $statement = $queryBuilder
+            ->select('tablename', 'recuid')
+            ->from('sys_refindex')
+            ->where(
+                $queryBuilder->expr()->eq('ref_table', $queryBuilder->createNamedParameter($table, \PDO::PARAM_STR)),
+                $queryBuilder->expr()->eq('ref_uid', $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT)),
+                $queryBuilder->expr()->eq('deleted', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)),
+                $queryBuilder->expr()->eq('workspace', $queryBuilder->createNamedParameter((int)$this->BE_USER->workspace, \PDO::PARAM_INT))
+            )
+            ->execute();
+        while ($row = $statement->fetch()) {
+            $this->updateRefIndex($row['tablename'], (int)$row['recuid']);
+        }
+    }
+
     /*********************************************
      *
      * Misc functions
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/FAL/AbstractActionTestCase.php b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/AbstractActionTestCase.php
index 41e50f7dcb4f9e35a3e5507e599d1a8cb3073317..5d71c41d193831d5d3d68622559604e5b02aea9f 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/FAL/AbstractActionTestCase.php
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/AbstractActionTestCase.php
@@ -168,4 +168,25 @@ abstract class AbstractActionTestCase extends AbstractDataHandlerActionTestCase
             [self::TABLE_FileReference => [self::VALUE_FileReferenceContentLastFileFirst, self::VALUE_FileReferenceContentLastFileLast]]
         );
     }
+
+    protected function createContentWithFileReferenceAndDeleteFileReference()
+    {
+        // Create content element with a file reference
+        $newTableIds = $this->actionService->createNewRecords(
+            self::VALUE_PageId,
+            [
+                self::TABLE_Content => ['header' => 'Testing #1', self::FIELD_ContentImage => '__nextUid'],
+                self::TABLE_FileReference => ['title' => 'Image #1', self::FIELD_FileReferenceImage => self::VALUE_FileIdFirst],
+            ]
+        );
+        $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][0];
+        $this->recordIds['newSysFileReference'] = $newTableIds[self::TABLE_FileReference][0];
+        // Delete the file reference again, but keep the content element
+        $this->actionService->modifyRecord(
+            self::TABLE_Content,
+            $this->recordIds['newContentId'],
+            [self::FIELD_ContentImage => ''],
+            [self::TABLE_FileReference => [$this->recordIds['newSysFileReference']]]
+        );
+    }
 }
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/ActionTest.php b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/ActionTest.php
index e525e7f3a33817b5608bf8202b016a76dd27ef13..ebb6d477a419c460367055bd4a8d798348bd4535 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/ActionTest.php
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/ActionTest.php
@@ -272,4 +272,14 @@ class ActionTest extends AbstractActionTestCase
             ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentImage)
             ->setTable(self::TABLE_FileReference)->setField('title')->setValues('Taken at T3BOARD', 'This is Kasper'));
     }
+
+    /**
+     * @test
+     */
+    public function createContentWithFileReferenceAndDeleteFileReference()
+    {
+        parent::createContentWithFileReferenceAndDeleteFileReference();
+        $this->assertAssertionDataSet('createContentWFileReferenceNDeleteFileReference');
+        // No FE test: Create and delete scenarios have FE coverage, this test is only about DB state.
+    }
 }
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/createContentWFileReferenceNDeleteFileReference.csv b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/createContentWFileReferenceNDeleteFileReference.csv
new file mode 100644
index 0000000000000000000000000000000000000000..364350063b3f96733e3bdda95ba2eb37ae92124b
--- /dev/null
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/createContentWFileReferenceNDeleteFileReference.csv
@@ -0,0 +1,17 @@
+"sys_file_reference",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","deleted","sys_language_uid","l10n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","uid_local","uid_foreign","tablenames","fieldname","sorting_foreign","table_local","title","description","alternative","link"
+,126,89,0,0,0,0,0,0,0,0,1,330,"tt_content","image",2,"sys_file","T3BOARD",,,
+,127,89,0,0,0,0,0,0,0,0,21,330,"tt_content","image",1,"sys_file","Kasper",,,
+,128,89,0,0,0,0,0,0,0,0,21,331,"tt_content","image",1,"sys_file","Taken at T3BOARD",,,
+,129,89,0,0,0,0,0,0,0,0,1,331,"tt_content","image",2,"sys_file","This is Kasper",,,
+,130,89,1,0,0,0,0,0,0,0,1,332,"tt_content","image",1,"sys_file","Image #1",,,
+"tt_content",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","image",,,,,,,
+,330,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,,,,,
+,331,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",2,,,,,,,
+,332,89,128,0,0,0,0,0,0,0,0,"Testing #1",0,,,,,,,
+"sys_refindex",,,,,,,,,,,,,,,,,,,,
+,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,,,,,,,,
+,"b1315f6a325027205050c81764294b72","sys_file",1,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
+,"10034d14de6b8c87aa0096de9d029498","sys_file",1,"metadata",0,0,0,"sys_file_metadata",1,,,,,,,,,,,
+,"788fed77d153954bc5cfd013f123e444","sys_file_reference",130,"uid_local",0,1,0,"sys_file",1,,,,,,,,,,,
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/modifyContentNDeleteAllFileReference.csv b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/modifyContentNDeleteAllFileReference.csv
index 766adc6c8a3c8d050b1a6d3be1b75b25894096b4..c7bd75d6427af1fa3c4a040587767f021fb39340 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/modifyContentNDeleteAllFileReference.csv
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/modifyContentNDeleteAllFileReference.csv
@@ -10,8 +10,6 @@
 ,331,89,512,0,0,0,0,0,0,0,0,0,"Regular Element #2",0,,,,,,
 "sys_refindex",,,,,,,,,,,,,,,,,,,,
 ,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,,,,,,,,
-,"48540de7710e3082f347bdd65ca340f2","tt_content",331,"image",0,0,0,"sys_file_reference",128,,,,,,,,,,,
-,"ceaebd2148901a6d7b0a52c546aa5218","tt_content",331,"image",1,0,0,"sys_file_reference",129,,,,,,,,,,,
 ,"fb266d0b94cee39b87fe03b9b7875c25","sys_file_reference",129,"uid_local",0,1,0,"sys_file",1,,,,,,,,,,,
 ,"b1315f6a325027205050c81764294b72","sys_file",1,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
 ,"10034d14de6b8c87aa0096de9d029498","sys_file",1,"metadata",0,0,0,"sys_file_metadata",1,,,,,,,,,,,
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/modifyContentNDeleteFileReference.csv b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/modifyContentNDeleteFileReference.csv
index 95b0162fbf3ddbef6b4ad3d9fcc1a64c2c562b3a..b11efab0644b7e4d7a611475b31ac28ee1eaeee2 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/modifyContentNDeleteFileReference.csv
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/FAL/Modify/DataSet/modifyContentNDeleteFileReference.csv
@@ -11,8 +11,7 @@
 "sys_refindex",,,,,,,,,,,,,,,,,,,,
 ,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,,,,,,,,
 ,"c08c2538c324b0a98b0957bc4bdf36ae","sys_file_reference",129,"uid_local",0,0,0,"sys_file",1,,,,,,,,,,,
-,"48540de7710e3082f347bdd65ca340f2","tt_content",331,"image",0,0,0,"sys_file_reference",128,,,,,,,,,,,
-,"ceaebd2148901a6d7b0a52c546aa5218","tt_content",331,"image",1,0,0,"sys_file_reference",129,,,,,,,,,,,
+,"997297edc2047a0fd48ffc237299a902","tt_content",331,"image",0,0,0,"sys_file_reference",129,,,,,,,,,,,
 ,"0b7edf2205371519698cdfbf6e0cc6e7","sys_file_reference",128,"uid_local",0,1,0,"sys_file",21,,,,,,,,,,,
 ,"6588728f1c2f2069b4b781ab1d102fff","sys_file",21,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
 ,"ff0a9ca5f364b75bccb699b74d167c83","sys_file",21,"metadata",0,0,0,"sys_file_metadata",21,,,,,,,,,,,
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/Group/DataSet/ReferenceIndex.csv b/typo3/sysext/core/Tests/Functional/DataHandling/Group/DataSet/ReferenceIndex.csv
index 1eb737c73f22df9e7e4ba40a267f0df04022238d..3df039d3a25fd93bded7551046ac3a8aa272abf8 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/Group/DataSet/ReferenceIndex.csv
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/Group/DataSet/ReferenceIndex.csv
@@ -2,5 +2,6 @@
 ,"hash","tablename","recuid","field","flexpointer","softref_key","softref_id","sorting","deleted","ref_table","ref_uid","ref_string"
 ,"0c81d9b3f27460380a2e442fdfa0649d","tt_content",298,"tx_testdatahandler_group",,,,0,0,"tx_testdatahandler_element",2,
 ,"8f3d6a0de293045066188fc790f4805f","tt_content",298,"tx_testdatahandler_group",,,,1,0,"tx_testdatahandler_element",3,
+# @todo: The hash fields of next 2 rows are probably wrong
 ,"70386199b2e7d7e3be07ec7b501f411d","tt_content",297,"tx_testdatahandler_group",,,,0,0,"tx_testdatahandler_element",1,
 ,"3f113b20cdf1b3be96048a257872a178","tt_content",297,"tx_testdatahandler_group",,,,1,0,"tx_testdatahandler_element",2,
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/Group/Modify/DataSet/deleteElementOfRelation.csv b/typo3/sysext/core/Tests/Functional/DataHandling/Group/Modify/DataSet/deleteElementOfRelation.csv
index b232016287559e1d3688e420f6dd3e8939338005..0f1aedcc333f978f207f1126df65f56fec61781e 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/Group/Modify/DataSet/deleteElementOfRelation.csv
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/Group/Modify/DataSet/deleteElementOfRelation.csv
@@ -17,5 +17,6 @@
 ,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,,
 ,"0c81d9b3f27460380a2e442fdfa0649d","tt_content",298,"tx_testdatahandler_group",0,0,0,"tx_testdatahandler_element",2,,,,,
 ,"8f3d6a0de293045066188fc790f4805f","tt_content",298,"tx_testdatahandler_group",1,0,0,"tx_testdatahandler_element",3,,,,,
-,"70386199b2e7d7e3be07ec7b501f411d","tt_content",297,"tx_testdatahandler_group",0,0,0,"tx_testdatahandler_element",1,,,,,
-,"3f113b20cdf1b3be96048a257872a178","tt_content",297,"tx_testdatahandler_group",1,0,0,"tx_testdatahandler_element",2,,,,,
+# @todo: Next row should be gone or deleted=1 - issue in ReferenceIndex group handling?
+,"67070566eb5b788c5edd02dbdbc63da1","tt_content",297,"tx_testdatahandler_group",0,0,0,"tx_testdatahandler_element",1,,,,,
+,"250d3cfe7e1d9944e5c1e3bd086390e9","tt_content",297,"tx_testdatahandler_group",1,0,0,"tx_testdatahandler_element",2,,,,,
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/modifyParentNDeleteHotelChild.csv b/typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/modifyParentNDeleteHotelChild.csv
index c993ecffa03bf8932e5aace99b99f33001966a7c..3fb657b115c08e4394ff3982cc39853c2f09f34d 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/modifyParentNDeleteHotelChild.csv
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/DataSet/modifyParentNDeleteHotelChild.csv
@@ -28,4 +28,3 @@
 ,"991035e9a032ce5a95b3dbc7f2f31471","tx_irretutorial_1nff_hotel",3,"offers",0,0,0,"tx_irretutorial_1nff_offer",5,,,,,,,,
 ,"3a59a2c65f05196774ee38fad12b11a8","tx_irretutorial_1nff_hotel",3,"offers",1,0,0,"tx_irretutorial_1nff_offer",6,,,,,,,,
 ,"d445fd78a1e37837ce5cb8cfca3c3159","tt_content",297,"tx_irretutorial_1nff_hotels",0,0,0,"tx_irretutorial_1nff_hotel",3,,,,,,,,
-,"5925fc8c83fd2759d4dbb7d2e87b9e28","tt_content",297,"tx_irretutorial_1nff_hotels",1,0,0,"tx_irretutorial_1nff_hotel",4,,,,,,,,
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/Select/DataSet/ReferenceIndex.csv b/typo3/sysext/core/Tests/Functional/DataHandling/Select/DataSet/ReferenceIndex.csv
index 3c38b9e77b896cec308db606a9d1ddf741861148..a2359e8738c309319b896c6ed58cf9f86eb78ed0 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/Select/DataSet/ReferenceIndex.csv
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/Select/DataSet/ReferenceIndex.csv
@@ -1,5 +1,6 @@
 "sys_refindex",,,,,,,,,,,,
 ,"hash","tablename","recuid","field","flexpointer","softref_key","softref_id","sorting","deleted","ref_table","ref_uid","ref_string"
+# @todo: The hash fields of next 2 rows are probably wrong
 ,"d7065184b2d510f3fada875169bc8c57","tt_content",297,"tx_testdatahandler_select",,,,0,0,"tx_testdatahandler_element",1,
 ,"d333521843e8774369e112581bd4643b","tt_content",297,"tx_testdatahandler_select",,,,1,0,"tx_testdatahandler_element",2,
 ,"fb9a4c46d91b175ee7503de71523c849","tt_content",298,"tx_testdatahandler_select",,,,0,0,"tx_testdatahandler_element",2,
diff --git a/typo3/sysext/core/Tests/Functional/DataHandling/Select/Modify/DataSet/deleteElementOfRelation.csv b/typo3/sysext/core/Tests/Functional/DataHandling/Select/Modify/DataSet/deleteElementOfRelation.csv
index 01578a2c3055f03eec0f31100261339b7da1c768..9c0667fea1b35e64ce8bab5a8956bbd056ae6b3b 100644
--- a/typo3/sysext/core/Tests/Functional/DataHandling/Select/Modify/DataSet/deleteElementOfRelation.csv
+++ b/typo3/sysext/core/Tests/Functional/DataHandling/Select/Modify/DataSet/deleteElementOfRelation.csv
@@ -15,7 +15,7 @@
 ,3,89,768,0,0,0,0,0,0,0,0,0,"Element #3",
 "sys_refindex",,,,,,,,,,,,,,
 ,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,,
-,"d7065184b2d510f3fada875169bc8c57","tt_content",297,"tx_testdatahandler_select",0,0,0,"tx_testdatahandler_element",1,,,,,
-,"d333521843e8774369e112581bd4643b","tt_content",297,"tx_testdatahandler_select",1,0,0,"tx_testdatahandler_element",2,,,,,
+,"1d5f3ff5e2c46e921da27c6379578cbb","tt_content",297,"tx_testdatahandler_select",0,0,0,"tx_testdatahandler_element",1,,,,,
+,"e17fe872ae38f0fbce0763d3c54b3af3","tt_content",297,"tx_testdatahandler_select",1,0,0,"tx_testdatahandler_element",2,,,,,
 ,"fb9a4c46d91b175ee7503de71523c849","tt_content",298,"tx_testdatahandler_select",0,0,0,"tx_testdatahandler_element",2,,,,,
 ,"f54bf3a4ddc51685c0586b31015312cb","tt_content",298,"tx_testdatahandler_select",1,0,0,"tx_testdatahandler_element",3,,,,,
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Discard/ActionTest.php b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Discard/ActionTest.php
index b3ce1eb989e4701c34cdfe81f4e7396893f0da9b..365c9170407ec01d9c1087206cbb1a7795c82de2 100644
--- a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Discard/ActionTest.php
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Discard/ActionTest.php
@@ -158,4 +158,15 @@ class ActionTest extends AbstractActionTestCase
         $this->actionService->clearWorkspaceRecord(self::TABLE_Content, self::VALUE_ContentIdLast);
         $this->assertAssertionDataSet('modifyContentNDeleteAllFileReference');
     }
+
+    /**
+     * @test
+     */
+    public function createContentWithFileReferenceAndDeleteFileReference()
+    {
+        parent::createContentWithFileReferenceAndDeleteFileReference();
+        $this->actionService->clearWorkspaceRecord(self::TABLE_Content, $this->recordIds['newContentId']);
+        $this->assertAssertionDataSet('createContentWFileReferenceNDeleteFileReference');
+        // No FE test: Create and delete scenarios have FE coverage, this test is only about DB state.
+    }
 }
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Discard/DataSet/createContentWFileReferenceNDeleteFileReference.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Discard/DataSet/createContentWFileReferenceNDeleteFileReference.csv
new file mode 100644
index 0000000000000000000000000000000000000000..e5842742536a0ce24e7413d5c1b44d4ab22e0b76
--- /dev/null
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Discard/DataSet/createContentWFileReferenceNDeleteFileReference.csv
@@ -0,0 +1,30 @@
+"sys_file_reference",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","deleted","sys_language_uid","l10n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","uid_local","uid_foreign","tablenames","fieldname","sorting_foreign","table_local","title","description","alternative","link"
+,126,89,0,0,0,0,0,0,0,0,1,330,"tt_content","image",2,"sys_file","T3BOARD",,,
+,127,89,0,0,0,0,0,0,0,0,21,330,"tt_content","image",1,"sys_file","Kasper",,,
+,128,89,0,0,0,0,0,0,0,0,21,331,"tt_content","image",1,"sys_file","Taken at T3BOARD",,,
+,129,89,0,0,0,0,0,0,0,0,1,331,"tt_content","image",2,"sys_file","This is Kasper",,,
+,130,89,1,0,0,1,1,0,0,0,1,332,"tt_content","image",1,"sys_file","Image #1",,,
+,131,89,1,0,0,1,-1,0,130,0,1,332,"tt_content","image",1,"sys_file","Image #1",,,
+"tt_content",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","image",,,,,,,
+,330,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,,,,,
+,331,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",2,,,,,,,
+"sys_refindex",,,,,,,,,,,,,,,,,,,,
+,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,,,,,,,,
+,"8765176f1ce58edcb5efdcabd59ca123","sys_category",31,"parent",0,0,0,"sys_category",28,,,,,,,,,,,
+,"b1315f6a325027205050c81764294b72","sys_file",1,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
+,"10034d14de6b8c87aa0096de9d029498","sys_file",1,"metadata",0,0,0,"sys_file_metadata",1,,,,,,,,,,,
+,"6588728f1c2f2069b4b781ab1d102fff","sys_file",21,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
+,"ff0a9ca5f364b75bccb699b74d167c83","sys_file",21,"metadata",0,0,0,"sys_file_metadata",21,,,,,,,,,,,
+,"557de1cd99f1b4d25f681d822c060598","sys_file_metadata",1,"file",0,0,0,"sys_file",1,,,,,,,,,,,
+,"4821da930346696406e3ccf3ec22d999","sys_file_metadata",21,"file",0,0,0,"sys_file",21,,,,,,,,,,,
+,"aa821da8cdc56afc736974735c9b1c1c","sys_file_reference",126,"uid_local",0,0,0,"sys_file",1,,,,,,,,,,,
+,"8e50f38980afa6f4e84530b12f9cd0b3","sys_file_reference",127,"uid_local",0,0,0,"sys_file",21,,,,,,,,,,,
+,"1f1d715dd5783cd50ecbda978e23dccb","sys_file_reference",128,"uid_local",0,0,0,"sys_file",21,,,,,,,,,,,
+,"c08c2538c324b0a98b0957bc4bdf36ae","sys_file_reference",129,"uid_local",0,0,0,"sys_file",1,,,,,,,,,,,
+,"a1f2ffdc6bf235cb5516c4bfdeec5552","tt_content",330,"image",0,0,0,"sys_file_reference",127,,,,,,,,,,,
+,"fc208fc9d55a71b2faa9f4e4d4fa941d","tt_content",330,"image",1,0,0,"sys_file_reference",126,,,,,,,,,,,
+,"48540de7710e3082f347bdd65ca340f2","tt_content",331,"image",0,0,0,"sys_file_reference",128,,,,,,,,,,,
+,"ceaebd2148901a6d7b0a52c546aa5218","tt_content",331,"image",1,0,0,"sys_file_reference",129,,,,,,,,,,,
+,"eab0cafc17f8d63c1ebd4994d7ab7413","sys_file_reference",131,"uid_local",0,1,1,"sys_file",1,,,,,,,,,,,
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/ActionTest.php b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/ActionTest.php
index ba96ab5a81485bc0f831066732e41087d0fe7827..759de1f8bac2d5cd18ebe094113883e5713782df 100644
--- a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/ActionTest.php
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/ActionTest.php
@@ -238,4 +238,14 @@ class ActionTest extends AbstractActionTestCase
             ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentImage)
             ->setTable(self::TABLE_FileReference)->setField('title')->setValues('Taken at T3BOARD', 'This is Kasper'));
     }
+
+    /**
+     * @test
+     */
+    public function createContentWithFileReferenceAndDeleteFileReference()
+    {
+        parent::createContentWithFileReferenceAndDeleteFileReference();
+        $this->assertAssertionDataSet('createContentWFileReferenceNDeleteFileReference');
+        // No FE test: Create and delete scenarios have FE coverage, this test is only about DB state.
+    }
 }
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/DataSet/createContentWFileReferenceNDeleteFileReference.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/DataSet/createContentWFileReferenceNDeleteFileReference.csv
new file mode 100644
index 0000000000000000000000000000000000000000..2afe4ae0db8d1f62aaba0c6d7cd45750da01fcf1
--- /dev/null
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/DataSet/createContentWFileReferenceNDeleteFileReference.csv
@@ -0,0 +1,32 @@
+"sys_file_reference",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","deleted","sys_language_uid","l10n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","uid_local","uid_foreign","tablenames","fieldname","sorting_foreign","table_local","title","description","alternative","link"
+,126,89,0,0,0,0,0,0,0,0,1,330,"tt_content","image",2,"sys_file","T3BOARD",,,
+,127,89,0,0,0,0,0,0,0,0,21,330,"tt_content","image",1,"sys_file","Kasper",,,
+,128,89,0,0,0,0,0,0,0,0,21,331,"tt_content","image",1,"sys_file","Taken at T3BOARD",,,
+,129,89,0,0,0,0,0,0,0,0,1,331,"tt_content","image",2,"sys_file","This is Kasper",,,
+,130,89,1,0,0,1,1,0,0,0,1,332,"tt_content","image",1,"sys_file","Image #1",,,
+,131,89,1,0,0,1,-1,0,130,0,1,332,"tt_content","image",1,"sys_file","Image #1",,,
+"tt_content",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","image",,,,,,,
+,330,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,,,,,
+,331,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",2,,,,,,,
+,332,89,128,0,0,0,1,1,0,0,0,"Testing #1",0,,,,,,,
+,333,89,128,0,0,0,1,-1,0,332,0,"Testing #1",0,,,,,,,
+"sys_refindex",,,,,,,,,,,,,,,,,,,,
+,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,,,,,,,,
+,"8765176f1ce58edcb5efdcabd59ca123","sys_category",31,"parent",0,0,0,"sys_category",28,,,,,,,,,,,
+,"b1315f6a325027205050c81764294b72","sys_file",1,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
+,"10034d14de6b8c87aa0096de9d029498","sys_file",1,"metadata",0,0,0,"sys_file_metadata",1,,,,,,,,,,,
+,"6588728f1c2f2069b4b781ab1d102fff","sys_file",21,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
+,"ff0a9ca5f364b75bccb699b74d167c83","sys_file",21,"metadata",0,0,0,"sys_file_metadata",21,,,,,,,,,,,
+,"557de1cd99f1b4d25f681d822c060598","sys_file_metadata",1,"file",0,0,0,"sys_file",1,,,,,,,,,,,
+,"4821da930346696406e3ccf3ec22d999","sys_file_metadata",21,"file",0,0,0,"sys_file",21,,,,,,,,,,,
+,"aa821da8cdc56afc736974735c9b1c1c","sys_file_reference",126,"uid_local",0,0,0,"sys_file",1,,,,,,,,,,,
+,"8e50f38980afa6f4e84530b12f9cd0b3","sys_file_reference",127,"uid_local",0,0,0,"sys_file",21,,,,,,,,,,,
+,"1f1d715dd5783cd50ecbda978e23dccb","sys_file_reference",128,"uid_local",0,0,0,"sys_file",21,,,,,,,,,,,
+,"c08c2538c324b0a98b0957bc4bdf36ae","sys_file_reference",129,"uid_local",0,0,0,"sys_file",1,,,,,,,,,,,
+,"a1f2ffdc6bf235cb5516c4bfdeec5552","tt_content",330,"image",0,0,0,"sys_file_reference",127,,,,,,,,,,,
+,"fc208fc9d55a71b2faa9f4e4d4fa941d","tt_content",330,"image",1,0,0,"sys_file_reference",126,,,,,,,,,,,
+,"48540de7710e3082f347bdd65ca340f2","tt_content",331,"image",0,0,0,"sys_file_reference",128,,,,,,,,,,,
+,"ceaebd2148901a6d7b0a52c546aa5218","tt_content",331,"image",1,0,0,"sys_file_reference",129,,,,,,,,,,,
+,"eab0cafc17f8d63c1ebd4994d7ab7413","sys_file_reference",131,"uid_local",0,1,1,"sys_file",1,,,,,,,,,,,
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/ActionTest.php b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/ActionTest.php
index b1b4d9472e20bc72590afe7279e7911dd8cda01a..b8010e729205d1b028ab737436e438ca2f1c0b2a 100644
--- a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/ActionTest.php
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/ActionTest.php
@@ -254,4 +254,15 @@ class ActionTest extends AbstractActionTestCase
             ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentImage)
             ->setTable(self::TABLE_FileReference)->setField('title')->setValues('Taken at T3BOARD', 'This is Kasper'));
     }
+
+    /**
+     * @test
+     */
+    public function createContentWithFileReferenceAndDeleteFileReference()
+    {
+        parent::createContentWithFileReferenceAndDeleteFileReference();
+        $this->actionService->publishRecord(self::TABLE_Content, $this->recordIds['newContentId']);
+        $this->assertAssertionDataSet('createContentWFileReferenceNDeleteFileReference');
+        // No FE test: Create and delete scenarios have FE coverage, this test is only about DB state.
+    }
 }
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/DataSet/createContentWFileReferenceNDeleteFileReference.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/DataSet/createContentWFileReferenceNDeleteFileReference.csv
new file mode 100644
index 0000000000000000000000000000000000000000..3b7fa6954f60266e3069bf2d653a05f345b77dc3
--- /dev/null
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/DataSet/createContentWFileReferenceNDeleteFileReference.csv
@@ -0,0 +1,31 @@
+"sys_file_reference",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","deleted","sys_language_uid","l10n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","uid_local","uid_foreign","tablenames","fieldname","sorting_foreign","table_local","title","description","alternative","link"
+,126,89,0,0,0,0,0,0,0,0,1,330,"tt_content","image",2,"sys_file","T3BOARD",,,
+,127,89,0,0,0,0,0,0,0,0,21,330,"tt_content","image",1,"sys_file","Kasper",,,
+,128,89,0,0,0,0,0,0,0,0,21,331,"tt_content","image",1,"sys_file","Taken at T3BOARD",,,
+,129,89,0,0,0,0,0,0,0,0,1,331,"tt_content","image",2,"sys_file","This is Kasper",,,
+,130,89,1,0,0,1,1,0,0,0,1,332,"tt_content","image",1,"sys_file","Image #1",,,
+,131,89,1,0,0,1,-1,0,130,0,1,332,"tt_content","image",1,"sys_file","Image #1",,,
+"tt_content",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","image",,,,,,,
+,330,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,,,,,
+,331,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",2,,,,,,,
+,332,89,128,0,0,0,0,0,0,0,0,"Testing #1",0,,,,,,,
+"sys_refindex",,,,,,,,,,,,,,,,,,,,
+,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,,,,,,,,
+,"8765176f1ce58edcb5efdcabd59ca123","sys_category",31,"parent",0,0,0,"sys_category",28,,,,,,,,,,,
+,"b1315f6a325027205050c81764294b72","sys_file",1,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
+,"10034d14de6b8c87aa0096de9d029498","sys_file",1,"metadata",0,0,0,"sys_file_metadata",1,,,,,,,,,,,
+,"6588728f1c2f2069b4b781ab1d102fff","sys_file",21,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
+,"ff0a9ca5f364b75bccb699b74d167c83","sys_file",21,"metadata",0,0,0,"sys_file_metadata",21,,,,,,,,,,,
+,"557de1cd99f1b4d25f681d822c060598","sys_file_metadata",1,"file",0,0,0,"sys_file",1,,,,,,,,,,,
+,"4821da930346696406e3ccf3ec22d999","sys_file_metadata",21,"file",0,0,0,"sys_file",21,,,,,,,,,,,
+,"aa821da8cdc56afc736974735c9b1c1c","sys_file_reference",126,"uid_local",0,0,0,"sys_file",1,,,,,,,,,,,
+,"8e50f38980afa6f4e84530b12f9cd0b3","sys_file_reference",127,"uid_local",0,0,0,"sys_file",21,,,,,,,,,,,
+,"1f1d715dd5783cd50ecbda978e23dccb","sys_file_reference",128,"uid_local",0,0,0,"sys_file",21,,,,,,,,,,,
+,"c08c2538c324b0a98b0957bc4bdf36ae","sys_file_reference",129,"uid_local",0,0,0,"sys_file",1,,,,,,,,,,,
+,"a1f2ffdc6bf235cb5516c4bfdeec5552","tt_content",330,"image",0,0,0,"sys_file_reference",127,,,,,,,,,,,
+,"fc208fc9d55a71b2faa9f4e4d4fa941d","tt_content",330,"image",1,0,0,"sys_file_reference",126,,,,,,,,,,,
+,"48540de7710e3082f347bdd65ca340f2","tt_content",331,"image",0,0,0,"sys_file_reference",128,,,,,,,,,,,
+,"ceaebd2148901a6d7b0a52c546aa5218","tt_content",331,"image",1,0,0,"sys_file_reference",129,,,,,,,,,,,
+,"eab0cafc17f8d63c1ebd4994d7ab7413","sys_file_reference",131,"uid_local",0,1,1,"sys_file",1,,,,,,,,,,,
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/ActionTest.php b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/ActionTest.php
index e6b72db176d79570acb16a7707a7cbdc6f723b14..0052c693bef9ba185b7a5ef6c79235058ac5b8db 100644
--- a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/ActionTest.php
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/ActionTest.php
@@ -249,4 +249,15 @@ class ActionTest extends AbstractActionTestCase
             ->setRecordIdentifier(self::TABLE_Content . ':' . self::VALUE_ContentIdLast)->setRecordField(self::FIELD_ContentImage)
             ->setTable(self::TABLE_FileReference)->setField('title')->setValues('Taken at T3BOARD', 'This is Kasper'));
     }
+
+    /**
+     * @test
+     */
+    public function createContentWithFileReferenceAndDeleteFileReference()
+    {
+        parent::createContentWithFileReferenceAndDeleteFileReference();
+        $this->actionService->publishWorkspace(self::VALUE_WorkspaceId);
+        $this->assertAssertionDataSet('createContentWFileReferenceNDeleteFileReference');
+        // No FE test: Create and delete scenarios have FE coverage, this test is only about DB state.
+    }
 }
diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/DataSet/createContentWFileReferenceNDeleteFileReference.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/DataSet/createContentWFileReferenceNDeleteFileReference.csv
new file mode 100644
index 0000000000000000000000000000000000000000..3b7fa6954f60266e3069bf2d653a05f345b77dc3
--- /dev/null
+++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/DataSet/createContentWFileReferenceNDeleteFileReference.csv
@@ -0,0 +1,31 @@
+"sys_file_reference",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","deleted","sys_language_uid","l10n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","uid_local","uid_foreign","tablenames","fieldname","sorting_foreign","table_local","title","description","alternative","link"
+,126,89,0,0,0,0,0,0,0,0,1,330,"tt_content","image",2,"sys_file","T3BOARD",,,
+,127,89,0,0,0,0,0,0,0,0,21,330,"tt_content","image",1,"sys_file","Kasper",,,
+,128,89,0,0,0,0,0,0,0,0,21,331,"tt_content","image",1,"sys_file","Taken at T3BOARD",,,
+,129,89,0,0,0,0,0,0,0,0,1,331,"tt_content","image",2,"sys_file","This is Kasper",,,
+,130,89,1,0,0,1,1,0,0,0,1,332,"tt_content","image",1,"sys_file","Image #1",,,
+,131,89,1,0,0,1,-1,0,130,0,1,332,"tt_content","image",1,"sys_file","Image #1",,,
+"tt_content",,,,,,,,,,,,,,,,,,,,
+,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header","image",,,,,,,
+,330,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",2,,,,,,,
+,331,89,512,0,0,0,0,0,0,0,0,"Regular Element #2",2,,,,,,,
+,332,89,128,0,0,0,0,0,0,0,0,"Testing #1",0,,,,,,,
+"sys_refindex",,,,,,,,,,,,,,,,,,,,
+,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,,,,,,,,
+,"8765176f1ce58edcb5efdcabd59ca123","sys_category",31,"parent",0,0,0,"sys_category",28,,,,,,,,,,,
+,"b1315f6a325027205050c81764294b72","sys_file",1,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
+,"10034d14de6b8c87aa0096de9d029498","sys_file",1,"metadata",0,0,0,"sys_file_metadata",1,,,,,,,,,,,
+,"6588728f1c2f2069b4b781ab1d102fff","sys_file",21,"storage",0,0,0,"sys_file_storage",1,,,,,,,,,,,
+,"ff0a9ca5f364b75bccb699b74d167c83","sys_file",21,"metadata",0,0,0,"sys_file_metadata",21,,,,,,,,,,,
+,"557de1cd99f1b4d25f681d822c060598","sys_file_metadata",1,"file",0,0,0,"sys_file",1,,,,,,,,,,,
+,"4821da930346696406e3ccf3ec22d999","sys_file_metadata",21,"file",0,0,0,"sys_file",21,,,,,,,,,,,
+,"aa821da8cdc56afc736974735c9b1c1c","sys_file_reference",126,"uid_local",0,0,0,"sys_file",1,,,,,,,,,,,
+,"8e50f38980afa6f4e84530b12f9cd0b3","sys_file_reference",127,"uid_local",0,0,0,"sys_file",21,,,,,,,,,,,
+,"1f1d715dd5783cd50ecbda978e23dccb","sys_file_reference",128,"uid_local",0,0,0,"sys_file",21,,,,,,,,,,,
+,"c08c2538c324b0a98b0957bc4bdf36ae","sys_file_reference",129,"uid_local",0,0,0,"sys_file",1,,,,,,,,,,,
+,"a1f2ffdc6bf235cb5516c4bfdeec5552","tt_content",330,"image",0,0,0,"sys_file_reference",127,,,,,,,,,,,
+,"fc208fc9d55a71b2faa9f4e4d4fa941d","tt_content",330,"image",1,0,0,"sys_file_reference",126,,,,,,,,,,,
+,"48540de7710e3082f347bdd65ca340f2","tt_content",331,"image",0,0,0,"sys_file_reference",128,,,,,,,,,,,
+,"ceaebd2148901a6d7b0a52c546aa5218","tt_content",331,"image",1,0,0,"sys_file_reference",129,,,,,,,,,,,
+,"eab0cafc17f8d63c1ebd4994d7ab7413","sys_file_reference",131,"uid_local",0,1,1,"sys_file",1,,,,,,,,,,,