diff --git a/advanced_help.module b/advanced_help.module
index ad55411..35f2197 100644
--- a/advanced_help.module
+++ b/advanced_help.module
@@ -190,6 +190,9 @@ function advanced_help_index_page($module = '') {
 
     advanced_help_get_topic_hierarchy($topics);
     $items = advanced_help_get_tree($topics, $topics[$module]['']['children']);
+    if (1 === count($items)) {
+      drupal_goto("help/$module/{$topics[$module][$topics[$module]['']['children'][0][1]]['file']}");
+    }
 
     $breadcrumb[] = advanced_help_l(t('Help'), 'admin/advanced_help');
 
@@ -577,8 +580,16 @@ function advanced_help_view_topic($module, $topic, $popup = FALSE) {
 
     $output = file_get_contents($file);
     if (isset($info['readme file']) && $info['readme file']) {
-      // Readme files are treated as plain text: filter accordingly.
-      $output = check_plain($output);
+      if (!$popup && function_exists('_filter_markdown')) {
+        if (isset($_GET['plain'])) {
+          $output = '<div><em>View as <a href="?">Markdown</a>.</em></div>' . check_plain($output);
+        } else {
+          $output = '<div><em>View as <a href="?plain">plain text</a>.</em></div>' . _filter_markdown($output, null);
+        }
+      } else {
+        // Readme files are treated as plain text: filter accordingly.
+        $output = check_plain($output);
+      }
     }
 
     // Make some exchanges. The strtr is because url() translates $ into %24
