diff --git a/aleksis/apps/untis/util/mysql/importers/lessons.py b/aleksis/apps/untis/util/mysql/importers/lessons.py
index 2c654501a67f77f50850a79b09a4e219c578e717..5418c01fd5f3a5371973518a4052d92a00ce9789 100644
--- a/aleksis/apps/untis/util/mysql/importers/lessons.py
+++ b/aleksis/apps/untis/util/mysql/importers/lessons.py
@@ -1,4 +1,5 @@
 import logging
+from datetime import timedelta
 
 from constance import config
 from django.utils.translation import gettext as _
@@ -28,6 +29,18 @@ def import_lessons(
 
     # Get current term
     term = get_term()
+    date_start = untis_date_to_date(term.datefrom)
+    date_end = untis_date_to_date(term.dateto)
+
+    # Get all existing lessons for this term
+    lessons_in_term = chronos_models.Lesson.objects.filter(
+        term_untis=term.term_id
+    ).values_list("id", flat=True)
+
+    # Set the end date of all lessons from other terms ending in this term to the day before this term starts
+    chronos_models.Lesson.objects.filter(date_end__gte=date_start).exclude(
+        id__in=lessons_in_term
+    ).update(date_end=date_start - timedelta(days=1))
 
     # Lessons
     lessons = run_default_filter(mysql_models.Lesson.objects)
@@ -178,10 +191,6 @@ def import_lessons(
             else:
                 groups = course_classes
 
-            # Create new lesson
-            date_start = untis_date_to_date(term.datefrom)
-            date_end = untis_date_to_date(term.dateto)
-
             # Get old lesson
             old_lesson_qs = chronos_models.Lesson.objects.filter(
                 lesson_id_untis=lesson_id, element_id_untis=i, term_untis=term.term_id