diff --git a/core/includes/module.inc b/core/includes/module.inc
index 11f8244..4d5959f 100644
--- a/core/includes/module.inc
+++ b/core/includes/module.inc
@@ -32,7 +32,12 @@
  *   storage controller cache or some other way to circumvent it/take it over.
  */
 function system_list($type) {
-  $lists = &drupal_static(__FUNCTION__);
+  $lists = &drupal_static(__FUNCTION__, array());
+
+  if (isset($lists[$type])) {
+    return $lists[$type];
+  }
+
   if ($cached = cache('bootstrap')->get('system_list')) {
     $lists = $cached->data;
   }
