diff --git a/typo3/sysext/frontend/Classes/Middleware/PreviewSimulator.php b/typo3/sysext/frontend/Classes/Middleware/PreviewSimulator.php
index ffe0d1cb6a02275c34253bdc3b54293ffcf4c277..60300bb69bf47919a2c958b6fd54a512697809cd 100644
--- a/typo3/sysext/frontend/Classes/Middleware/PreviewSimulator.php
+++ b/typo3/sysext/frontend/Classes/Middleware/PreviewSimulator.php
@@ -94,10 +94,19 @@ class PreviewSimulator implements MiddlewareInterface
     {
         $pageRepository = GeneralUtility::makeInstance(PageRepository::class, $this->context);
         $site = $request->getAttribute('site', null);
-        return $pageRepository->checkIfPageIsHidden(
-            $pageId,
-            LanguageAspectFactory::createFromSiteLanguage($request->getAttribute('language', $site->getDefaultLanguage()))
-        );
+        // always check both the page in the requested language and the page in the default language, as due to the
+        // overlay handling, a hidden default page will require setting the preview flag to allow previewing of the
+        // translation
+        $languageAspectFromRequest = LanguageAspectFactory::createFromSiteLanguage($request->getAttribute('language', $site->getDefaultLanguage()));
+        $pageIsHidden = $pageRepository->checkIfPageIsHidden($pageId, $languageAspectFromRequest);
+
+        if ($languageAspectFromRequest->getId() > 0) {
+            $pageIsHidden = $pageIsHidden || $pageRepository->checkIfPageIsHidden(
+                $pageId,
+                LanguageAspectFactory::createFromSiteLanguage($site->getDefaultLanguage())
+            );
+        }
+        return $pageIsHidden;
     }
 
     /**