Index: includes/module.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/module.inc,v
retrieving revision 1.199
diff -u -p -r1.199 module.inc
--- includes/module.inc	1 Oct 2010 18:37:22 -0000	1.199
+++ includes/module.inc	2 Oct 2010 02:09:55 -0000
@@ -65,9 +65,11 @@ function module_list($refresh = FALSE, $
       }
     }
     else {
-      // As this is the $refresh case, make sure that system_list() returns
-      // fresh data.
-      system_list_reset();
+      if ($refresh) {
+        // For the $refresh case, make sure that system_list() returns fresh
+        // data.
+        drupal_static_reset('system_list');
+      }
       if ($bootstrap) {
         $list = system_list('bootstrap');
       }
@@ -391,6 +393,7 @@ function module_enable($module_list, $en
         ->condition('name', $module)
         ->execute();
       // Refresh the module list to include it.
+      system_list_reset();
       module_list(TRUE);
       module_implements('', FALSE, TRUE);
       _system_update_bootstrap_status();
@@ -497,6 +500,7 @@ function module_disable($module_list, $d
 
   if (!empty($invoke_modules)) {
     // Refresh the module list to exclude the disabled modules.
+    system_list_reset();
     module_list(TRUE);
     module_implements('', FALSE, TRUE);
     // Invoke hook_modules_disabled before disabling modules,
