diff --git a/app/controllers/course/timesrooms.php b/app/controllers/course/timesrooms.php
index 14db14fe1bfa3b77730418df8a1a424382139adc..486d7b065f9d5167eba7b321e9caa702da4927be 100644
--- a/app/controllers/course/timesrooms.php
+++ b/app/controllers/course/timesrooms.php
@@ -1051,15 +1051,13 @@ class Course_TimesroomsController extends AuthenticatedController
             $this->has_bookings = $count > 0;
         }
 
-
-        $course = Course::find($this->course->id);
         if ($this->course->isOpenEnded()) { // course with endless lifespan
-            $end_semester = Semester::findBySQL("beginn >= ? ", [$this->course->start_time]);
+            $end_semester = Semester::findBySQL("beginn >= ? ORDER BY beginn", [$this->course->start_time]);
         } else { // course over more than one semester
-            $end_semester = $course->semesters;
+            $end_semester = $this->course->semesters;
         }
 
-        $this->start_weeks = $this->course->end_semester->getStartWeeks();
+        $this->start_weeks = $this->course->start_semester->getStartWeeks($this->course->duration_time);
 
         if (!empty($end_semester)) {
             $this->end_semester_weeks = [];