diff --git a/lib/SimpleSAML/Module.php b/lib/SimpleSAML/Module.php
index 3ae590d5068f7378bdce80d711298c50a0515db1..3ef75889effcc22bf3377fd0f4ec6b9726231eac 100644
--- a/lib/SimpleSAML/Module.php
+++ b/lib/SimpleSAML/Module.php
@@ -162,7 +162,9 @@ class SimpleSAML_Module {
 	public static function callHooks($hook, &$data = NULL) {
 		assert('is_string($hook)');
 
-		foreach (self::getModules() as $module) {
+		$modules = self::getModules();
+		sort($modules);
+		foreach ($modules as $module) {
 			if (!self::isModuleEnabled($module)) {
 				continue;
 			}