Index: modules/system/admin.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/admin.css,v
retrieving revision 1.11
diff -u -p -r1.11 admin.css
--- modules/system/admin.css	14 Oct 2006 05:17:48 -0000	1.11
+++ modules/system/admin.css	20 Nov 2006 20:36:37 -0000
@@ -84,6 +84,13 @@ table.system-status-report tr.ok th {
 }
 
 /**
+ * Formatting for help links on admin/by-module
+ */
+ .help-link {
+  float: right;
+}
+
+/**
  * Formatting for theme configuration
  */
 .theme-settings-left {
@@ -96,4 +103,4 @@ table.system-status-report tr.ok th {
 }
 .theme-settings-bottom {
   clear: both;
-}
\ No newline at end of file
+}
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.399
diff -u -p -r1.399 system.module
--- modules/system/system.module	19 Nov 2006 23:51:01 -0000	1.399
+++ modules/system/system.module	20 Nov 2006 20:36:39 -0000
@@ -33,7 +33,7 @@ function system_help($section) {
     case 'admin':
       return t('<p>Welcome to the administration section. Here you may control how your site functions.</p>');
     case 'admin/by-module':
-      return t('<p>This page shows you all available administration tasks for each module.</p>');
+      return '<p>'. t('This page shows all available administration tasks for each module.') .'</p>';
     case 'admin/settings/page-caching':
       return t('Enabling the cache will offer a sufficient performance boost. Drupal can store and send compressed cached pages requested by "anonymous" users. By caching a web page, Drupal does not have to create the page each time someone wants to view it.');
     case 'admin/build/themes':
@@ -2245,15 +2245,15 @@ function system_admin_by_module() {
       }
     }
 
-    // Check for help links.
-    if (module_invoke($module, 'help', "admin/help#$module")) {
-      $admin_tasks[100] = l(t('Get help'), "admin/help/$module");
-    }
-
-    // Sort
-    ksort($admin_tasks);
+    // Check to see if module has a help page.
+    $help = module_invoke($module, 'help', "admin/help#$module") ? "admin/help/$module" : FALSE;
 
-    $menu_items[$file->info['name']] = array($file->info['description'], $admin_tasks);
+    // Only display a section if there are any available tasks.
+    if (count($admin_tasks)) {
+      // Sort
+      ksort($admin_tasks);
+      $menu_items[$file->info['name']] = array($file->info['description'], $admin_tasks, $help);
+    }
   }
   return theme('system_admin_by_module', $menu_items);
 }
@@ -2268,15 +2268,19 @@ function theme_system_admin_by_module($m
 
   // Iterate over all modules
   foreach ($menu_items as $module => $block) {
-    list($description, $items) = $block;
+    list($description, $items, $help) = $block;
 
     // Output links
     if (count($items)) {
       $block = array();
-      $block['title'] = $module;
+      $block['title'] = t('@module', array('@module' => $module));
       $block['content'] = theme('item_list', $items);
       $block['description'] = $description;
 
+      if ($help) {
+        $block['description'] .= l(t('get help'), $help, array('class' => 'help-link'));
+      }
+
       if ($block_output = theme('admin_block', $block)) {
         if (!$block['position']) {
           // Perform automatic striping.
