diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index 3b561f304d0bf43060ea9a37d1d7c8e9b10d5c30..af432ac7a14cceb80d0f0fa408da3d94e3c60029 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -453,14 +453,16 @@ class LessonPeriod(WeekAnnotationMixin, TeacherPropertiesMixin, ExtensibleModel)
         return None
 
     def get_subject(self) -> Optional[Subject]:
-        if self.get_substitution() and self.get_substitution().subject:
-            return self.get_substitution().subject
+        sub = self.get_substitution()
+        if sub and sub.subject:
+            return sub.subject
         else:
             return self.lesson.subject
 
     def get_teachers(self) -> models.query.QuerySet:
-        if self.get_substitution():
-            return self.get_substitution().teachers
+        sub = self.get_substitution()
+        if sub and sub.teachers.all():
+            return sub.teachers
         else:
             return self.lesson.teachers