diff -ruN typo3_src-7.4.0/typo3/sysext/frontend/Classes/Page/PageRepository.php typo3_src-7.4.0_patched/typo3/sysext/frontend/Classes/Page/PageRepository.php --- typo3_src-7.4.0/typo3/sysext/frontend/Classes/Page/PageRepository.php 2015-08-04 15:14:25.000000000 +0200 +++ typo3_src-7.4.0_patched/typo3/sysext/frontend/Classes/Page/PageRepository.php 2015-09-18 13:01:20.000000000 +0200 @@ -467,9 +467,12 @@ // Must be default language or [All], otherwise no overlaying: if ($row[$GLOBALS['TCA'][$table]['ctrl']['languageField']] <= 0) { // Select overlay record: - $res = $this->getDatabaseConnection()->exec_SELECTquery('*', $table, 'pid=' . (int)$row['pid'] . ' AND ' . $GLOBALS['TCA'][$table]['ctrl']['languageField'] . '=' . (int)$sys_language_content . ' AND ' . $GLOBALS['TCA'][$table]['ctrl']['transOrigPointerField'] . '=' . (int)$row['uid'] . $this->enableFields($table), '', '', '1'); + $res = $this->getDatabaseConnection()->exec_SELECTquery('*', $table, 'pid=' . (int)$row['pid'] . ' AND ' . $GLOBALS['TCA'][$table]['ctrl']['languageField'] . '=' . (int)$sys_language_content . ' AND ' . $GLOBALS['TCA'][$table]['ctrl']['transOrigPointerField'] . '=' . (int)$row['uid'] . $this->enableFields($table, ($OLmode === "1" && $table === "tt_content" ? 1 : -1)), '', '', '1'); $olrow = $this->getDatabaseConnection()->sql_fetch_assoc($res); $this->getDatabaseConnection()->sql_free_result($res); + if($OLmode === "1" && $table === "tt_content" && $olrow['hidden']) { + return false; + } $this->versionOL($table, $olrow); // Merge record content by traversing all fields: if (is_array($olrow)) {