diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php
index 49703ead3c6f877d80d309cd2cf79979a35ce563..99b2943c6d83a75b28cf8af05c42dcfded692bda 100644
--- a/app/controllers/admin/courses.php
+++ b/app/controllers/admin/courses.php
@@ -1193,7 +1193,9 @@ class Admin_CoursesController extends AuthenticatedController
             $filter->filterBySemester($this->semester->getId());
         }
         if ($active_elements['courseType'] && $params['typeFilter'] && $params['typeFilter'] !== "all") {
-            list($class_filter,$type_filter) = explode('_', $params['typeFilter']);
+            $parts = explode('_', $params['typeFilter']);
+            $class_filter = $parts[0];
+            $type_filter = $parts[1] ?? null;
             if (!$type_filter && !empty($GLOBALS['SEM_CLASS'][$class_filter])) {
                 $type_filter = array_keys($GLOBALS['SEM_CLASS'][$class_filter]->getSemTypes());
             }
diff --git a/lib/models/Semester.class.php b/lib/models/Semester.class.php
index 6934563e97bc7fefdc7b14f720b9e4d6fd015c1b..21481f2f394684e4cbaf93af1819858d67da26d0 100644
--- a/lib/models/Semester.class.php
+++ b/lib/models/Semester.class.php
@@ -243,7 +243,7 @@ class Semester extends SimpleORMap
             $semesters = self::getAllAsArray($with_before_first);
         }
         foreach ($semesters as $index => $semester) {
-            if (@$semester['semester_id'] === $semester_id) {
+            if (isset($semester['semester_id']) && $semester['semester_id'] === $semester_id) {
                 return $index;
             }
         }