diff --git a/typo3/sysext/core/Classes/Resource/FileRepository.php b/typo3/sysext/core/Classes/Resource/FileRepository.php
index f8643384ef12b2cf318446688d3f88c4de718222..5b9acaddfd27bd6498f3f251174c45f0d14b072d 100644
--- a/typo3/sysext/core/Classes/Resource/FileRepository.php
+++ b/typo3/sysext/core/Classes/Resource/FileRepository.php
@@ -152,14 +152,10 @@ class FileRepository extends AbstractRepository
         $folders = $folder->getStorage()->getFoldersInFolder($folder, 0, 0, true, true);
         $folders[$folder->getIdentifier()] = $folder;
 
-        $fileRecords = $this->getFileIndexRepository()->findByFolders($folders, false);
+        $fileRecords = $this->getFileIndexRepository()->findByFolders($folders, false, $fileName);
 
         $files = array();
         foreach ($fileRecords as $fileRecord) {
-            if (stristr($fileRecord['name'], $fileName) === false) {
-                continue;
-            }
-
             try {
                 $files[] = $fileFactory->getFileObject($fileRecord['uid'], $fileRecord);
             } catch (Exception\FileDoesNotExistException $ignoredException) {
diff --git a/typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php b/typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php
index 67c893f1555951f6e8af476f59437d6ffd604d09..5b9032800f2813681136e4bdf2b7fb6a4d017527 100644
--- a/typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php
+++ b/typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php
@@ -203,9 +203,10 @@ class FileIndexRepository implements SingletonInterface
      *
      * @param Folder[] $folders
      * @param bool $includeMissing
+     * @param string $fileName
      * @return array|NULL
      */
-    public function findByFolders(array $folders, $includeMissing = true)
+    public function findByFolders(array $folders, $includeMissing = true, $fileName = null)
     {
         $storageUids = [];
         $folderIdentifiers = [];
@@ -226,6 +227,7 @@ class FileIndexRepository implements SingletonInterface
             $this->table,
             'folder_hash IN ( ' . implode(',', $this->getDatabaseConnection()->fullQuoteArray($folderIdentifiers, $this->table)) . ')' .
             ' AND storage IN (' . implode(',', $storageUids) . ')' .
+            (isset($fileName) ? ' AND name LIKE "%' . $this->getDatabaseConnection()->escapeStrForLike($this->getDatabaseConnection()->quoteStr($fileName, $this->table), $this->table) . '%"' : '') .
             ($includeMissing ? '' : ' AND missing = 0'),
             '',
             '',