--- modules/system/system.admin.inc.1.48	Fri Jan 04 00:55:31 2008
+++ modules/system/system.admin.inc	Thu Jan 10 03:19:02 2008
@@ -641,6 +641,8 @@ function system_modules($form_state = ar
     }
   }
 
+  // Used to test if module implements a help page.
+  $empty_help_arg = drupal_help_arg();
   // Array for disabling checkboxes in callback system_module_disable.
   $disabled = array();
   $throttle = array();
@@ -649,6 +651,17 @@ function system_modules($form_state = ar
     $form['name'][$filename] = array('#value' => $file->info['name']);
     $form['version'][$filename] = array('#value' => $file->info['version']);
     $form['description'][$filename] = array('#value' => t($file->info['description']));
+
+    // Generate link for module's help page, if there is one.
+    $help_link = '';
+    if (module_hook($filename, 'help')) {
+      if (module_invoke($filename, 'help', "admin/help#$filename", $empty_help_arg)) {
+        // Module has a help page.
+        $help_link = theme('more_help_link', url("admin/help/$filename"));
+      }
+    }
+    $form['help'][$filename] = array('#value' => $help_link);
+
     $options[$filename] = '';
     // Ensure this module is compatible with this version of core and php.
     if (_system_is_incompatible($incompatible_core, $files, $file) || _system_is_incompatible($incompatible_php, $files, $file)) {
@@ -2090,6 +2103,7 @@ function theme_system_modules($form) {
 
       $row[] = drupal_render($form['version'][$key]);
       $row[] = array('data' => $description, 'class' => 'description');
+      $row[] = array('data' => drupal_render($form['help'][$key]), 'nowrap' => 'nowrap');
       $rows[] = $row;
     }
     $fieldset = array(
