diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php
index a798880ead815f5d77a3e95d35464af4c2c6a750..5f60442bb409deefada7871a3318bf9ca868d4bc 100644
--- a/app/controllers/admin/courses.php
+++ b/app/controllers/admin/courses.php
@@ -294,7 +294,7 @@ class Admin_CoursesController extends AuthenticatedController
         PageLayout::setTitle(_('Verwaltung von Veranstaltungen und Einrichtungen'));
         // Add admission functions.
         PageLayout::addScript('studip-admission.js');
-        $this->max_show_courses = 500;
+        $this->max_show_courses = Config::get()->MAX_SHOW_ADMIN_COURSES;
     }
 
     /**
diff --git a/db/migrations/6.0.8_add_max_show_admin_courses_config.php b/db/migrations/6.0.8_add_max_show_admin_courses_config.php
new file mode 100644
index 0000000000000000000000000000000000000000..dbc19297bd2b4f297327e93f131cb18642f26a16
--- /dev/null
+++ b/db/migrations/6.0.8_add_max_show_admin_courses_config.php
@@ -0,0 +1,32 @@
+<?php
+
+final class AddMaxShowAdminCoursesConfig extends Migration
+{
+    public function description()
+    {
+        return 'Adds the configuration MAX_SHOW_ADMIN_COURSES, if it doesn\'t exist yet and set a default value.';
+    }
+
+    public function up()
+    {
+        DBManager::get()->exec("INSERT IGNORE INTO `config`
+             (`field`, `value`, `type`, `range`, `section`, `mkdate`, `chdate`, `description`)
+             VALUES
+             (
+              'MAX_SHOW_ADMIN_COURSES',
+              500,
+              'integer',
+              'global',
+              'MeineVeranstaltungen',
+              UNIX_TIMESTAMP(),
+              UNIX_TIMESTAMP(),
+              'Wie viele Veranstaltungen sollen auf der Admin-Veranstaltungsseite angezeigt werden.'
+             )"
+        );
+    }
+
+    public function down()
+    {
+        DBManager::get()->exec("DELETE FROM `config_values` WHERE `field` = 'MAX_SHOW_ADMIN_COURSES'");
+    }
+}