diff --git a/lib/classes/admission/UserFilter.class.php b/lib/classes/admission/UserFilter.class.php
index cb2e85c4aa4fcf38edd2e4b2f9c23d38c87cd889..32eed4830835304846bd1ab3c14af00f2fd343b9 100644
--- a/lib/classes/admission/UserFilter.class.php
+++ b/lib/classes/admission/UserFilter.class.php
@@ -101,6 +101,9 @@ class UserFilter
      */
     public function getFields()
     {
+        uasort($this->fields, function($a, $b) {
+            return $a->sortOrder -  $b->sortOrder;
+        });
         return $this->fields;
     }
 
diff --git a/lib/classes/admission/UserFilterField.class.php b/lib/classes/admission/UserFilterField.class.php
index 36ed57cea30e9664e864bb3d8927c42e9fa4161d..ab6db5799ce0753467e8a69dd71b25212b873056 100644
--- a/lib/classes/admission/UserFilterField.class.php
+++ b/lib/classes/admission/UserFilterField.class.php
@@ -51,6 +51,12 @@ class UserFilterField
      */
     public $value = null;
 
+    /*
+     * Provide some kind of sort order for filter fields. By default,
+     * all subclasses without an explicitly given order will be sorted at the end.
+     */
+    public $sortOrder = 99;
+
     public static $isParameterized = false;
 
     /**
diff --git a/lib/classes/admission/userfilter/DatafieldCondition.class.php b/lib/classes/admission/userfilter/DatafieldCondition.class.php
index f896f3434b61694f5c0e9861ce21506a7cfd3466..471b806ca8fdcdca6ad9c3f9e1af44ef9bf253d7 100644
--- a/lib/classes/admission/userfilter/DatafieldCondition.class.php
+++ b/lib/classes/admission/userfilter/DatafieldCondition.class.php
@@ -18,6 +18,8 @@ class DatafieldCondition extends UserFilterField
 
     public $datafield_id, $null_yields, $datafield_name;
 
+    public $sortOrder = 6;
+
     public static function getParameterizedTypes()
     {
         $ret = [];
diff --git a/lib/classes/admission/userfilter/DegreeCondition.class.php b/lib/classes/admission/userfilter/DegreeCondition.class.php
index bc4d40b77212094bc493ad742e648014e0ac1aef..9180e2d39f2383ac39e522aaf77a36978d2f5053 100644
--- a/lib/classes/admission/userfilter/DegreeCondition.class.php
+++ b/lib/classes/admission/userfilter/DegreeCondition.class.php
@@ -22,6 +22,8 @@ class DegreeCondition extends UserFilterField
     public $userDataDbTable = 'user_studiengang';
     public $userDataDbField = 'abschluss_id';
 
+    public $sortOrder = 1;
+
     /**
      * @see UserFilterField::__construct
      */
diff --git a/lib/classes/admission/userfilter/PermissionCondition.class.php b/lib/classes/admission/userfilter/PermissionCondition.class.php
index 0f2b0a34ccd5fa521462b6b2c4f7058267f669c3..4adfdbfb50f804cce288a64bf9241b3915ef2343 100644
--- a/lib/classes/admission/userfilter/PermissionCondition.class.php
+++ b/lib/classes/admission/userfilter/PermissionCondition.class.php
@@ -15,6 +15,8 @@
  */
 class PermissionCondition extends UserFilterField
 {
+    public $sortOrder = 7;
+
     /**
      * @see UserFilterField::__construct
      */
diff --git a/lib/classes/admission/userfilter/SemesterOfStudyCondition.class.php b/lib/classes/admission/userfilter/SemesterOfStudyCondition.class.php
index 13498186f054e898829ca3442e2dca5b91c16b7c..c73475617315e4563e15fdb624d4544c1ee20044 100644
--- a/lib/classes/admission/userfilter/SemesterOfStudyCondition.class.php
+++ b/lib/classes/admission/userfilter/SemesterOfStudyCondition.class.php
@@ -22,6 +22,8 @@ class SemesterOfStudyCondition extends UserFilterField
     public $userDataDbTable = 'user_studiengang';
     public $userDataDbField = 'semester';
 
+    public $sortOrder = 4;
+
     // --- OPERATIONS ---
 
     /**
diff --git a/lib/classes/admission/userfilter/StgteilVersionCondition.class.php b/lib/classes/admission/userfilter/StgteilVersionCondition.class.php
index e53bfadc536c8897ab2a8db5ac31efcb57edee3e..391fba360e20fb7432f00b60c376d55b2a0dd24b 100644
--- a/lib/classes/admission/userfilter/StgteilVersionCondition.class.php
+++ b/lib/classes/admission/userfilter/StgteilVersionCondition.class.php
@@ -22,6 +22,8 @@ class StgteilVersionCondition extends UserFilterField
     public $userDataDbTable = 'user_studiengang';
     public $userDataDbField = 'version_id';
 
+    public $sortOrder = 5;
+
     public static $isParameterized = true;
 
     public static function getParameterizedTypes()
diff --git a/lib/classes/admission/userfilter/SubjectCondition.class.php b/lib/classes/admission/userfilter/SubjectCondition.class.php
index e7f75c1918dcf14f2e421398cac5f0d87ae3752e..ab44d491190f10d04c4a93c8f729cc7d71f0c07a 100644
--- a/lib/classes/admission/userfilter/SubjectCondition.class.php
+++ b/lib/classes/admission/userfilter/SubjectCondition.class.php
@@ -22,6 +22,8 @@ class SubjectCondition extends UserFilterField
     public $userDataDbTable = 'user_studiengang';
     public $userDataDbField = 'fach_id';
 
+    public $sortOrder = 2;
+
     // --- OPERATIONS ---
 
     /**
diff --git a/lib/classes/admission/userfilter/SubjectConditionAny.class.php b/lib/classes/admission/userfilter/SubjectConditionAny.class.php
index 013e16e5b467493272b7b98296bbb6a88647959e..4b3caba06296afcc5414938a7190023a75478054 100644
--- a/lib/classes/admission/userfilter/SubjectConditionAny.class.php
+++ b/lib/classes/admission/userfilter/SubjectConditionAny.class.php
@@ -25,6 +25,8 @@ class SubjectConditionAny extends UserFilterField
     public $userDataDbTable = 'user_studiengang';
     public $userDataDbField = 'fach_id';
 
+    public $sortOrder = 3;
+
     // --- OPERATIONS ---
 
     /**