Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.232
diff -u -r1.232 system.admin.inc
--- modules/system/system.admin.inc	2 Dec 2009 14:56:32 -0000	1.232
+++ modules/system/system.admin.inc	3 Dec 2009 00:32:15 -0000
@@ -745,7 +745,7 @@
 
   // Remove hidden modules from display list.
   foreach ($files as $filename => $file) {
-    if (!empty($file->info['hidden']) || !empty($file->info['required'])) {
+    if (!empty($file->info['hidden'])) {
       unset($files[$filename]);
     }
   }
@@ -770,6 +770,11 @@
   foreach ($files as $filename => $module) {
     $extra = array();
     $extra['enabled'] = (bool) $module->status;
+    if (!empty($module->info['required'] )) {
+      $extra['disabled'] = TRUE;
+      $extra['required_by'][] = t('Drupal core');
+    }
+
     // If this module requires other modules, add them to the array.
     foreach ($module->requires as $requires => $v) {
       if (!isset($files[$requires])) {
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.854
diff -u -r1.854 system.module
--- modules/system/system.module	2 Dec 2009 15:09:16 -0000	1.854
+++ modules/system/system.module	3 Dec 2009 00:32:16 -0000
@@ -95,7 +95,9 @@
     case 'admin/appearance/settings':
       return '<p>' . t('These options control the default display settings for your entire site, across all themes. Unless they have been overridden by a specific theme, these settings will be used.') . '</p>';
     case 'admin/config/modules':
-      $output = '<p>' . t('Download additional <a href="@modules">contributed modules</a> to extend Drupal\'s functionality.', array('@modules' => 'http://drupal.org/project/modules')) . '</p>';
+      $output = '';
+      $output .= '<p>' . t('Enable and disable modules using the checkboxes below. Some modules cannot be disabled, because they are required by other modules, or because they are required by the core of Drupal itself.') . '</p>';
+      $output .= '<p>' . t('Download additional <a href="@modules">contributed modules</a> to extend Drupal\'s functionality.', array('@modules' => 'http://drupal.org/project/modules')) . '</p>';
       if (module_exists('update')) {
         if (update_manager_access()) {
           $output .= '<p>' . t('Regularly review and install <a href="@updates">available updates</a> to maintain a secure and current site. Always run the <a href="@update-php">update script</a> each time a module is updated.', array('@update-php' => $base_url . '/update.php', '@updates' => url('admin/reports/updates'))) . '</p>';
