diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
index fe6aa21aa..bec55b8ac 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
@@ -565,6 +565,20 @@ class ReaderPresenter(
             })
     }
 
+    /**
+     * Generate a filename for the given [manga] and [page]
+     */
+    private fun generateFilename(
+        manga: Manga,
+        page: ReaderPage,
+    ): String {
+        val chapter = page.chapter.chapter
+        val filenameSuffix = " - ${page.number}"
+        return DiskUtil.buildValidFilename(
+            "${manga.title} - ${chapter.name}".takeBytes(MAX_FILE_NAME_BYTES - filenameSuffix.byteSize())
+        ) + filenameSuffix
+    }
+
     /**
      * Saves the image of this [page] on the pictures directory and notifies the UI of the result.
      * There's also a notification to allow sharing the image somewhere else or deleting it.
@@ -577,12 +591,7 @@ class ReaderPresenter(
         val notifier = SaveImageNotifier(context)
         notifier.onClear()
 
-        // Generate filename
-        val chapter = page.chapter.chapter
-        val filenameSuffix = " - ${page.number}"
-        val filename = DiskUtil.buildValidFilename(
-            "${manga.title} - ${chapter.name}".takeBytes(MAX_FILE_NAME_BYTES - filenameSuffix.byteSize())
-        ) + filenameSuffix
+        val filename = generateFilename(manga, page)
 
         // Pictures directory.
         val relativePath = if (preferences.folderPerManga()) DiskUtil.buildValidFilename(manga.title) else ""
@@ -624,13 +633,15 @@ class ReaderPresenter(
         val context = Injekt.get<Application>()
         val destDir = context.cacheImageDir
 
+        val filename = generateFilename(manga, page)
+
         try {
             presenterScope.launchIO {
                 destDir.deleteRecursively()
                 val uri = imageSaver.save(
                     image = Image.Page(
                         inputStream = page.stream!!,
-                        name = manga.title,
+                        name = filename,
                         location = Location.Cache
                     )
                 )