diff --git a/lib/classes/AdminCourseFilter.php b/lib/classes/AdminCourseFilter.php
index f643e0903fe50b7c85647fcc0404a2e20dc522a6..0c0ec8deb33f55f86e8558be9cbdcc6015eb97de 100644
--- a/lib/classes/AdminCourseFilter.php
+++ b/lib/classes/AdminCourseFilter.php
@@ -27,7 +27,7 @@
  */
 class AdminCourseFilter
 {
-    static protected $instance = null;
+    protected static $instance = null;
 
     /** @var SQLQuery|null  */
     public $query = null;
@@ -38,11 +38,14 @@ class AdminCourseFilter
      * returns an AdminCourseFilter singleton object
      * @return AdminCourseFilter or derived-class object
      */
-    static public function get($reset_settings = false)
+    public static function get($reset_settings = false)
     {
+        if ($reset_settings) {
+            return new static($reset_settings);
+        }
+
         if (!self::$instance) {
-            $class = get_called_class();
-            self::$instance = new $class($reset_settings);
+            self::$instance = new static($reset_settings);
         }
         return self::$instance;
     }
@@ -50,12 +53,12 @@ class AdminCourseFilter
     /**
      * Constructor of the singleton-object.
      */
-    public function __construct()
+    public function __construct(bool $reset_settings = false)
     {
-        $this->initSettings();
+        $this->initSettings($reset_settings);
     }
 
-    protected function initSettings()
+    protected function initSettings(bool $reset_settings = false): void
     {
         $this->query = SQLQuery::table('seminare');
         $this->query->join('sem_types', 'sem_types', 'sem_types.id = seminare.status');
@@ -63,7 +66,7 @@ class AdminCourseFilter
         $this->query->where("sem_classes.studygroup_mode = '0'");
         $this->query->groupBy('seminare.Seminar_id');
 
-        if ($GLOBALS['user']->cfg->ADMIN_COURSES_SEARCHTEXT) {
+        if (!$reset_settings && $GLOBALS['user']->cfg->ADMIN_COURSES_SEARCHTEXT) {
             $this->query->join('teachers_su', 'seminar_user', "teachers_su.Seminar_id = seminare.Seminar_id AND teachers_su.status = 'dozent'");
             $this->query->join('teachers', 'auth_user_md5', 'teachers.user_id = teachers_su.user_id');
             $this->query->where(
@@ -72,7 +75,7 @@ class AdminCourseFilter
                 ['search' => '%'.$GLOBALS['user']->cfg->ADMIN_COURSES_SEARCHTEXT.'%']
             );
         }
-        if (Request::option('course_id')) {
+        if (!$reset_settings && Request::option('course_id')) {
             $this->query->where('course_id', 'seminare.Seminar_id = :course_id', ['course_id' => Request::option('course_id')]);
         }
         $inst_ids = [];
@@ -114,7 +117,10 @@ class AdminCourseFilter
             ]);
         }
 
-        if ($GLOBALS['user']->cfg->MY_COURSES_TYPE_FILTER && $GLOBALS['user']->cfg->MY_COURSES_TYPE_FILTER !== 'all') {
+        if (
+            $GLOBALS['user']->cfg->MY_COURSES_TYPE_FILTER &&
+            $GLOBALS['user']->cfg->MY_COURSES_TYPE_FILTER !== 'all'
+        ) {
             if (str_contains($GLOBALS['user']->cfg->MY_COURSES_TYPE_FILTER, '_')) {
                 list($sem_class_id, $sem_type_id) = explode('_', $GLOBALS['user']->cfg->MY_COURSES_TYPE_FILTER);
                 $this->query->where('course_type', 'seminare.status = :course_type', ['course_type' => $sem_type_id]);
@@ -149,16 +155,16 @@ class AdminCourseFilter
             );
         }
 
-
-
-        $datafields_filters = $GLOBALS['user']->cfg->ADMIN_COURSES_DATAFIELDS_FILTERS;
-        foreach ($datafields_filters as $datafield_id => $value) {
-            $this->query->join('de_'.$datafield_id, 'datafields_entries', 'de_'.$datafield_id.'.range_id = seminare.Seminar_id AND `de_'.$datafield_id.'`.datafield_id = :de_'.$datafield_id.'_id');
-            $this->query->where('de_' . $datafield_id . '_contents', 'de_' . $datafield_id . '.`content` LIKE :de_' . $datafield_id . '_content',
-                [
-                    'de_' . $datafield_id . '_id' => $datafield_id,
-                    'de_' . $datafield_id . '_content' => '%' . $value . '%'
-                ]);
+        if (!$reset_settings) {
+            $datafields_filters = $GLOBALS['user']->cfg->ADMIN_COURSES_DATAFIELDS_FILTERS;
+            foreach ($datafields_filters as $datafield_id => $value) {
+                $this->query->join('de_'.$datafield_id, 'datafields_entries', 'de_'.$datafield_id.'.range_id = seminare.Seminar_id AND `de_'.$datafield_id.'`.datafield_id = :de_'.$datafield_id.'_id');
+                $this->query->where('de_' . $datafield_id . '_contents', 'de_' . $datafield_id . '.`content` LIKE :de_' . $datafield_id . '_content',
+                    [
+                        'de_' . $datafield_id . '_id' => $datafield_id,
+                        'de_' . $datafield_id . '_content' => '%' . $value . '%'
+                    ]);
+            }
         }
     }