diff --git a/pount/apps/api/signals.py b/pount/apps/api/signals.py
index 34588ce465cb462b06ca849a444e3071906bcec5..f261183a56235bd5546d081800231cfae4475b67 100644
--- a/pount/apps/api/signals.py
+++ b/pount/apps/api/signals.py
@@ -63,4 +63,4 @@ def create_iiif_task(sender, instance: models.item.MediaFile, **kwargs):
 @receiver(post_delete, sender=models.item.MediaFile)
 def remove_iiif_file(sender, instance: models.item.MediaFile, **kwargs):
     if instance.component == "Image":
-        clean_iiif_media.delay(instance.filename)
+        clean_iiif_media.delay(str(instance.id))
diff --git a/pount/apps/api/tasks.py b/pount/apps/api/tasks.py
index a8e2806465eef2ae121a4353246a2a9cd8e0ee4c..ea297d700965dd8eb8679fdd3e166e498fd02573 100644
--- a/pount/apps/api/tasks.py
+++ b/pount/apps/api/tasks.py
@@ -1,4 +1,5 @@
 import logging
+from typing import Union
 from uuid import UUID
 
 from celery import shared_task
@@ -34,14 +35,11 @@ def handle_update_item_metadata_on_template_save(template_id: UUID) -> None:
 
 
 @shared_task
-def clean_iiif_media(media_filename: str) -> None:
-    import os
-
+def clean_iiif_media(media_id: Union[str, UUID]) -> None:
     from pount.apps.api.storage_backends import IIIFFileStorage
 
     iiif_storage = IIIFFileStorage()
-    basename, _ = os.path.splitext(media_filename)
-    tiled_tif = f"{basename}.tiled.tif"
+    tiled_tif = f"{media_id}.tiled.tif"
     iiif_storage.delete(tiled_tif)
     logger.debug(f"deleted {tiled_tif}")
 
@@ -105,5 +103,5 @@ def ensure_media_has_iiif(media_id: UUID) -> None:
             pic_to_tiled_tiff(tmp_file_name, tiled_tif)
             iiif_storage = IIIFFileStorage()
             with open(tiled_tif, "rb") as f:
-                iiif_storage.save(os.path.basename(tiled_tif), f)
+                iiif_storage.save(f"{media_file.id}.tiled.tif", f)
                 logger.debug(f"saved {tiled_tif}")