--- modules/system/system.admin.inc.1.48	Fri Jan 04 00:55:31 2008
+++ modules/system/system.admin.inc	Mon Jan 14 13:50:44 2008
@@ -641,6 +641,8 @@ function system_modules($form_state = ar
     }
   }
 
+  // Used when checking if module implements a help page.
+  $help_arg = module_exists('help') ? drupal_help_arg() : FALSE;
   // Array for disabling checkboxes in callback system_module_disable.
   $disabled = array();
   $throttle = array();
@@ -649,6 +651,15 @@ 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.
+    if ($help_arg && module_hook($filename, 'help')) {
+      if (module_invoke($filename, 'help', "admin/help#$filename", $help_arg)) {
+        // Module has a help page.
+        $form['help'][$filename] = array('#value' => theme('more_help_link', url("admin/help/$filename")));
+      }
+    }
+
     $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)) {
@@ -2057,7 +2068,11 @@ function theme_system_modules($form) {
     $rows = array();
     foreach ($modules as $key => $module) {
       $row = array();
-      $description = drupal_render($form['description'][$key]);
+      $description = '';
+      if (isset($form['help'][$key])) {
+        $description = '<div class="module-help">'. drupal_render($form['help'][$key]) .'</div>';
+      }
+      $description .= drupal_render($form['description'][$key]);
       if (isset($form['status']['#incompatible_modules_core'][$key])) {
         unset($form['status'][$key]);
         $status = theme('image', 'misc/watchdog-error.png', t('incompatible'), t('Incompatible with this version of Drupal core'));
--- modules/system/system.css.1.46	Sat Jan 05 21:17:55 2008
+++ modules/system/system.css	Mon Jan 14 13:35:24 2008
@@ -160,6 +160,10 @@ tr.merge-up, tr.merge-up td, tr.merge-up
   font-size: 0.85em;
   text-align: right; /* LTR */
 }
+.module-help {
+  margin-left: 1em; /* LTR */
+  float: right; /* LTR */
+}
 .nowrap {
   white-space: nowrap;
 }
--- themes/garland/style.css.1.36+	Mon Jan 14 13:29:18 2008
+++ themes/garland/style.css	Mon Jan 14 13:31:04 2008
@@ -263,6 +263,10 @@ span.submitted, .description {
   color: #898989;
 }
 
+.description .more-help-link {
+  font-size: 0.92em;
+}
+
 .description {
   line-height: 150%;
   margin-bottom: 0.75em;
