diff --git a/typo3/sysext/backend/Classes/Form/Container/InlineRecordContainer.php b/typo3/sysext/backend/Classes/Form/Container/InlineRecordContainer.php
index e7cafdb263b7ca33b7e2a4b245d08bfa32d94f7c..d00ac33f581fd82e7819ff2dfe4db7d5c7ee1dbb 100644
--- a/typo3/sysext/backend/Classes/Form/Container/InlineRecordContainer.php
+++ b/typo3/sysext/backend/Classes/Form/Container/InlineRecordContainer.php
@@ -495,7 +495,7 @@ class InlineRecordContainer extends AbstractContainer
                     </a>';
             }
             // "Edit" link:
-            if (($rec['table_local'] === 'sys_file') && !$isNewItem) {
+            if (($rec['table_local'] === 'sys_file') && !$isNewItem && $backendUser->check('tables_modify', 'sys_file_metadata')) {
                 $sys_language_uid = 0;
                 if (!empty($rec['sys_language_uid'])) {
                     $sys_language_uid = $rec['sys_language_uid'][0];
@@ -518,7 +518,7 @@ class InlineRecordContainer extends AbstractContainer
                     ->setMaxResults(1)
                     ->execute()
                     ->fetch();
-                if ($backendUser->check('tables_modify', 'sys_file_metadata')) {
+                if (!empty($recordInDatabase)) {
                     $url = BackendUtility::getModuleUrl('record_edit', [
                         'edit[sys_file_metadata][' . (int)$recordInDatabase['uid'] . ']' => 'edit',
                         'returnUrl' => $this->data['returnUrl']