diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php
index a10aa5cfe1904d8a6bc4d829c904f29a75d85498..984d0ca7a227e61be178e8b92837351d3b5b83dc 100644
--- a/app/controllers/admin/courses.php
+++ b/app/controllers/admin/courses.php
@@ -958,6 +958,9 @@ class Admin_CoursesController extends AuthenticatedController
         if (count($filter_config) > 0) {
             $filter = AdminCourseFilter::get();
             PluginEngine::sendMessage(AdminCourseWidgetPlugin::class, 'applyFilters', $filter);
+            $filter->query->join('semester_courses', 'semester_courses', 'semester_courses.course_id = seminare.Seminar_id')
+                ->join('semester_data', 'semester_data', 'semester_data.semester_id = semester_courses.semester_id')
+                ->orderBy('semester_data.beginn, seminare.name');
             $courses = $filter->getCourses();
 
             $view_filters = $this->getViewFilters();