diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index 8910d5abeae6f02c6ebd781676002b804faef91b..bd1cfe12d531e95e4a5d0b7d1e480cf60b91717f 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -9,7 +9,7 @@ from django.contrib.contenttypes.fields import GenericForeignKey
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.sites.models import Site
 from django.core.exceptions import ValidationError
-from django.db import models
+from django.db import models, transaction
 from django.db.models import QuerySet
 from django.forms.widgets import Media
 from django.urls import reverse
@@ -456,7 +456,7 @@ class Notification(ExtensibleModel):
     def save(self, **kwargs):
         super().save(**kwargs)
         if not self.sent:
-            send_notification(self.pk, resend=True)
+            transaction.on_commit(lambda: send_notification(self.pk, resend=True))
         self.sent = True
         super().save(**kwargs)
 
diff --git a/dev.sh b/dev.sh
index 33c36f4748de2c5ceb2b3c3eb812e12d11013c67..fa77b4c47f287c48d7839801223bbeddac5c88e1 100755
--- a/dev.sh
+++ b/dev.sh
@@ -28,7 +28,7 @@ case "$1" in
 	locales="-l ar -l de_DE -l fr -l nb_NO -l tr_TR -l la"
 	for d in aleksis/core apps/official/*/aleksis/apps/*; do
 		echo; echo "Entering $d."
-		poetry run sh -c "cd $d; $manage_py makemessages --no-wrap -i static $locales"
+		poetry run sh -c "cd $d; $manage_py makemessages --no-wrap -e html,txt,py,email -i static $locales"
 		poetry run sh -c "cd $d; $manage_py makemessages --no-wrap -d djangojs $locales"
 	done
 	exit