diff --git a/apps/note/models/transactions.py b/apps/note/models/transactions.py
index b204e6234e870fcc9c38560035fb1ac2d16b8010..ac236ffefbc3689fa44bb647f7e56ee922ef58fa 100644
--- a/apps/note/models/transactions.py
+++ b/apps/note/models/transactions.py
@@ -223,7 +223,8 @@ class Transaction(PolymorphicModel):
         # Check that the amounts stay between big integer bounds
         diff_source, diff_dest = self.validate()
 
-        if not self.source.is_active or not self.destination.is_active:
+        if not (hasattr(self, '_force_save') and self._force_save) \
+                and (not self.source.is_active or not self.destination.is_active):
             raise ValidationError(_("The transaction can't be saved since the source note "
                                     "or the destination note is not active."))
 
@@ -271,7 +272,7 @@ class RecurrentTransaction(Transaction):
     )
 
     def clean(self):
-        if self.template.destination != self.destination:
+        if self.template.destination != self.destination and not (hasattr(self, '_force_save') and self._force_save):
             raise ValidationError(
                 _("The destination of this transaction must equal to the destination of the template."))
         return super().clean()
diff --git a/apps/note/signals.py b/apps/note/signals.py
index 8c02b3a523666a719428300a3d9816bf524d6987..a04df634a2e1ebd775333c1ef024cf8d92c0ca85 100644
--- a/apps/note/signals.py
+++ b/apps/note/signals.py
@@ -43,4 +43,5 @@ def delete_transaction(instance, **_kwargs):
     """
     if not hasattr(instance, "_no_signal"):
         instance.valid = False
+        instance._force_save = True
         instance.save()
diff --git a/apps/scripts b/apps/scripts
index dbe7bf65917df40b0ce476f357d04726e20b406f..8ec7d68a169c1072aec427925f3bf2fd54eab5a3 160000
--- a/apps/scripts
+++ b/apps/scripts
@@ -1 +1 @@
-Subproject commit dbe7bf65917df40b0ce476f357d04726e20b406f
+Subproject commit 8ec7d68a169c1072aec427925f3bf2fd54eab5a3