diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py
index f7f05ba2268182eb1989aa5c51fe8fe48c17d2c3..ca8af7f67d88cf1cce20ff6661996e58ed359ecc 100644
--- a/aleksis/apps/alsijil/util/predicates.py
+++ b/aleksis/apps/alsijil/util/predicates.py
@@ -171,9 +171,14 @@ def is_personal_note_lesson_teacher(user: User, obj: PersonalNote) -> bool:
     """
     if hasattr(obj, "lesson_period"):
         if hasattr(obj.lesson_period, "lesson"):
-            return user.person in obj.lesson_period.lesson.teachers.all() or user.person in Person.objects.filter(
+            sub = obj.lesson_period.get_substitution()
+            if sub and user.person in Person.objects.filter(
                 lesson_substitutions=obj.lesson_period.get_substitution()
-            )
+            ):
+                return True
+
+            return user.person in obj.lesson_period.lesson.teachers.all()
+
         return False
     return False