diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index a7f6485c972eb4582fb5e0764fcd6bc63c466e10..f744547045fada83520eb077b6b6fc8cd65afff0 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -111,13 +111,13 @@ class LessonDocumentation(ExtensibleModel):
 
         Can be deactivated using site preference ``alsijil__carry_over``.
         """
-        try:
-            second_period = LessonPeriod.objects.get(
-                lesson=self.lesson_period.lesson,
-                period__weekday=self.lesson_period.period.weekday,
-                period__period=self.lesson_period.period.period + 1,
-            )
-            lesson_documentation = second_period.get_or_create_lesson_documentation(
+        following_periods = LessonPeriod.objects.filter(
+            lesson=self.lesson_period.lesson,
+            period__weekday=self.lesson_period.period.weekday,
+            period__period__gt=self.lesson_period.period.period,
+        )
+        for period in following_periods:
+            lesson_documentation = period.get_or_create_lesson_documentation(
                 CalendarWeek(
                     week=self.week, year=self.lesson_period.lesson.get_year(self.week),
                 )
@@ -139,9 +139,6 @@ class LessonDocumentation(ExtensibleModel):
 
             if changed:
                 lesson_documentation.save()
-        except LessonPeriod.DoesNotExist:
-            # Do nothing if it's a single period
-            pass
 
     def save(self, *args, **kwargs):
         if get_site_preferences()["alsijil__carry_over"] and (