diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py
index 9f2424bfd03106030f21439d1eb18d18ead6435a..9fe6949e4cc3b133ee169c614c8e795f2ddc444b 100644
--- a/aleksis/apps/alsijil/util/predicates.py
+++ b/aleksis/apps/alsijil/util/predicates.py
@@ -19,7 +19,7 @@ def is_lesson_teacher(user: User, obj: LessonPeriod) -> bool:
     if hasattr(obj, "lesson"):
         return (
             user.person in obj.lesson.teachers.all()
-            or user.person in obj.substitutions.teachers.all()
+            or user.person in Person.objects.filter(lesson_substitutions__lesson_period=obj, lesson_substitutions__week=obj._week)
         )
     return True