diff --git a/app/controllers/admin/plugin.php b/app/controllers/admin/plugin.php
index bc073a867190bc01210b5e0ba38fbd596ab28e19..1be046dc5c89f3fda03ad92777c2d6d66b461750 100644
--- a/app/controllers/admin/plugin.php
+++ b/app/controllers/admin/plugin.php
@@ -16,7 +16,7 @@
 
 class Admin_PluginController extends AuthenticatedController
 {
-    private $plugin_admin;
+    private PluginAdministration $plugin_admin;
 
     /**
      * Common tasks for all actions.
@@ -509,10 +509,7 @@ class Admin_PluginController extends AuthenticatedController
 
     public function unregistered_action()
     {
-        $plugins = $this->plugin_admin->scanPluginDirectory();
-        usort($plugins, function ($a, $b) {
-            return $a['pluginname'] <=> $b['pluginname'];
-        });
+        $plugins = $this->plugin_admin->scanPluginDirectory(true);
         $this->unknown_plugins = $plugins;
     }
 
@@ -525,7 +522,7 @@ class Admin_PluginController extends AuthenticatedController
     public function register_action($number)
     {
         CSRFProtection::verifyUnsafeRequest();
-        $unknown_plugins = $this->plugin_admin->scanPluginDirectory();
+        $unknown_plugins = $this->plugin_admin->scanPluginDirectory(true);
         $plugin = $unknown_plugins[$number];
 
         try {
diff --git a/lib/classes/PluginAdministration.php b/lib/classes/PluginAdministration.php
index f906842632f54f17e98a2affa1845983607daffe..7fd7d9b1fc99e95665bf5e02bde5cdb19a70c50c 100644
--- a/lib/classes/PluginAdministration.php
+++ b/lib/classes/PluginAdministration.php
@@ -399,7 +399,7 @@ class PluginAdministration
      *
      * @return array with manifest meta data
      */
-    public function scanPluginDirectory()
+    public function scanPluginDirectory(bool $sort = false)
     {
         $found = [];
         $basepath = Config::get()->PLUGINS_PATH;
@@ -423,6 +423,14 @@ class PluginAdministration
                 $found[] = $manifest;
             }
         }
+
+        if ($sort) {
+            usort(
+                $found,
+                fn($a, $b) => $a['pluginname'] <=> $b['pluginname']
+            );
+        }
+
         return $found;
     }