? sites/all/modules/devel
? sites/default/files
? sites/default/settings.php
Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.292
diff -u -p -r1.292 system.admin.inc
--- modules/system/system.admin.inc	8 Jul 2010 03:41:27 -0000	1.292
+++ modules/system/system.admin.inc	19 Jul 2010 09:21:03 -0000
@@ -862,6 +862,17 @@ function system_modules($form, $form_sta
       $extra['required_by'][] = $distribution_name;
     }
 
+    // If the module name is mixed case, disable it. We can't support mixed case
+    // names because get_defined_functions returns function names converted to
+    // lower case, so updates of mixed case modules aren't identified correctly.
+    if ($filename !== drupal_strtolower($filename)) {
+      $extra['disabled'] = TRUE;
+      $extra['requires'][] = t('@module files has a <span class="admin-missing">mixed-case filename</span> (@filename), but should be all lower-case', array(
+        '@filename' => $filename,
+        '@module' => drupal_ucfirst($module->info['name']),
+      ));
+    }
+
     // If this module requires other modules, add them to the array.
     foreach ($module->requires as $requires => $v) {
       if (!isset($files[$requires])) {
