diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 85a14647e5902ac18a46a0edd6c0a72dea1e899a..29591f712096891a8c0e4e27b17f781b9c8c55a8 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -13,6 +13,7 @@ Fixed
 ~~~~~
 
 * Send notifications for changes done via daily lessons page.
+* Lessons with same subject and groups but different teachers were not considered equal.
 
 `2.4.1`_ - 2022-08-31
 ---------------------
diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index e77147752be02b634a3d365332c1b37e124dd82c..b67c1877d2c4ae8d567f405b292934c5655d4bc0 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -415,6 +415,18 @@ class Lesson(ValidityRangeRelatedExtensibleModel, GroupPropertiesMixin, TeacherP
         """Get teachers relation."""
         return self.teachers
 
+    @property
+    def _equal_lessons(self):
+        """Get all lesson periods with equal lessons in the whole school term."""
+
+        qs = Lesson.objects.filter(
+            subject=self.subject,
+            validity__school_term=self.validity.school_term,
+        )
+        for group in self.groups.all():
+            qs = qs.filter(groups=group)
+        return qs
+
     def __str__(self):
         return f"{format_m2m(self.groups)}, {self.subject.short_name}, {format_m2m(self.teachers)}"
 
@@ -581,18 +593,10 @@ class LessonPeriod(WeekAnnotationMixin, TeacherPropertiesMixin, ExtensibleModel)
         return f"{self.period}, {self.lesson}"
 
     @property
-    def _equal_lessons(self):
+    def _equal_lesson_periods(self):
         """Get all lesson periods with equal lessons in the whole school term."""
 
-        qs = LessonPeriod.objects.filter(
-            lesson__subject=self.lesson.subject,
-            lesson__validity__school_term=self.lesson.validity.school_term,
-        )
-        for group in self.lesson.groups.all():
-            qs = qs.filter(lesson__groups=group)
-        for teacher in self.lesson.teachers.all():
-            qs = qs.filter(lesson__teachers=teacher)
-        return qs
+        return LessonPeriod.objects.filter(lesson__in=self.lesson._equal_lessons)
 
     @property
     def next(self) -> "LessonPeriod":
@@ -601,7 +605,7 @@ class LessonPeriod(WeekAnnotationMixin, TeacherPropertiesMixin, ExtensibleModel)
         .. warning::
             To use this property,  the provided lesson period must be annotated with a week.
         """
-        return self._equal_lessons.next_lesson(self)
+        return self._equal_lesson_periods.next_lesson(self)
 
     @property
     def prev(self) -> "LessonPeriod":
@@ -610,7 +614,7 @@ class LessonPeriod(WeekAnnotationMixin, TeacherPropertiesMixin, ExtensibleModel)
         .. warning::
             To use this property,  the provided lesson period must be annotated with a week.
         """
-        return self._equal_lessons.next_lesson(self, -1)
+        return self._equal_lesson_periods.next_lesson(self, -1)
 
     def is_replaced_by_event(
         self, events: Iterable[Event], groups: Optional[Iterable[Group]] = None