diff --git a/typo3/sysext/frontend/Classes/ContentObject/ImageContentObject.php b/typo3/sysext/frontend/Classes/ContentObject/ImageContentObject.php
index 5179b08b8364890d4d5abf99844d705473759220..567f25e610a6eab5c21a8cb5bb358c370772f44b 100644
--- a/typo3/sysext/frontend/Classes/ContentObject/ImageContentObject.php
+++ b/typo3/sysext/frontend/Classes/ContentObject/ImageContentObject.php
@@ -214,14 +214,17 @@ class ImageContentObject extends AbstractContentObject
                     $sourceConfiguration['height'] = $sourceInfo[1];
 
                     $urlPrefix = '';
+                    $publicUrl = str_starts_with($sourceInfo[3], Environment::getPublicPath())
+                        ? PathUtility::stripPathSitePrefix($sourceInfo[3])
+                        : $sourceInfo[3];
 
                     // Prepend 'absRefPrefix' to file path only if file was not processed
                     // by FAL, e.g. GIFBUILDER
-                    if (!isset($sourceInfo['originalFile']) && is_file(Environment::getPublicPath() . '/' . $sourceInfo['3'])) {
+                    if (!isset($sourceInfo['originalFile']) && is_file(Environment::getPublicPath() . '/' . $publicUrl)) {
                         $urlPrefix = $tsfe->absRefPrefix;
                     }
 
-                    $sourceConfiguration['src'] = htmlspecialchars($urlPrefix . $sourceInfo[3]);
+                    $sourceConfiguration['src'] = htmlspecialchars($urlPrefix . $publicUrl);
                     $sourceConfiguration['selfClosingTagSlash'] = $this->getPageRenderer()->getDocType()->isXmlCompliant() ? ' /' : '';
 
                     $oneSourceCollection = $this->markerTemplateService->substituteMarkerArray($sourceLayout, $sourceConfiguration, '###|###', true, true);