diff --git a/src/videoag_common/objects/course.py b/src/videoag_common/objects/course.py
index fa9629bd42f28f6572e0ac2ccca82087097eee33..d5611c6637cb3bc6c5a4bc924133579ddb529cd1 100644
--- a/src/videoag_common/objects/course.py
+++ b/src/videoag_common/objects/course.py
@@ -197,6 +197,7 @@ class Lecture(DeletableApiObject, VisibilityApiObject, ApiViewPermissionsObject,
     chapters: Mapped[list[Chapter]] = relationship(
         back_populates="lecture",
         primaryjoin=lambda: sql.and_(Chapter.lecture_id == Lecture.id, Chapter.has_access(is_mod=True)),
+        order_by=Chapter.start_time.asc(),
         lazy="raise_on_sql"
     )
     # noinspection PyUnresolvedReferences
@@ -208,6 +209,7 @@ class Lecture(DeletableApiObject, VisibilityApiObject, ApiViewPermissionsObject,
     public_chapters: Mapped[list[Chapter]] = relationship(
         back_populates="lecture",
         primaryjoin=lambda: sql.and_(Chapter.lecture_id == Lecture.id, Chapter.has_access(is_mod=False)),
+        order_by=Chapter.start_time.asc(),
         lazy="raise_on_sql",
         viewonly=True
     )