diff --git a/scipost_django/submissions/factories/report.py b/scipost_django/submissions/factories/report.py
index 7c04bffbdbf65fb1eec9aec7395b9adc408577a3..dd6915934937e37d68d68e9440f31088594eecae 100644
--- a/scipost_django/submissions/factories/report.py
+++ b/scipost_django/submissions/factories/report.py
@@ -2,6 +2,7 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
 __license__ = "AGPL v3"
 
 
+from django.db.models.signals import post_save
 import factory
 
 from common.faker import LazyRandEnum, fake
@@ -22,6 +23,7 @@ from submissions.constants import (
 from submissions.models import Report
 
 
+@factory.django.mute_signals(post_save)
 class ReportFactory(factory.django.DjangoModelFactory):
     class Meta:
         model = Report
diff --git a/scipost_django/submissions/models/report.py b/scipost_django/submissions/models/report.py
index c532f16449b54f7695e35e8ff9e1292f1888ea19..c2965329186409f5eca0c078bc2d3d978bba9d92 100644
--- a/scipost_django/submissions/models/report.py
+++ b/scipost_django/submissions/models/report.py
@@ -5,6 +5,8 @@ __license__ = "AGPL v3"
 import subprocess
 from django.contrib.contenttypes.fields import GenericRelation
 from django.db import models
+from django.db.models.signals import post_save
+from django.dispatch import receiver
 from django.urls import reverse
 from django.utils.functional import cached_property
 
@@ -169,12 +171,7 @@ class Report(SubmissionRelatedObjectMixin, models.Model):
                 new_report_nr = 1
             self.report_nr = new_report_nr
 
-        super_save = super().save(*args, **kwargs)
-
-        if self.pdf_report and self.anonymous:
-            clean_pdf(self.pdf_report.path)
-
-        return super_save
+        return super().save(*args, **kwargs)
 
     def get_absolute_url(self):
         """Return url of the Report on the Submission detail page."""
@@ -323,3 +320,9 @@ class Report(SubmissionRelatedObjectMixin, models.Model):
             .order_by("submission__submission_date")
             .last()
         )
+
+
+@receiver(post_save, sender=Report)
+def clean_anonymous_report_pdf(sender, instance, created, **kwargs):
+    if instance.pdf_report and instance.anonymous:
+        clean_pdf(instance.pdf_report.path)