diff --git a/advanced_help.module b/advanced_help.module
index a77d64d..fc26052 100644
--- a/advanced_help.module
+++ b/advanced_help.module
@@ -588,7 +588,6 @@ function advanced_help_get_topic_filename($module, $topic) {
  */
 function advanced_help_get_topic_file_info($module, $topic) {
   global $language;
-
   $info = advanced_help_get_topic($module, $topic);
   if (empty($info)) {
     return;
@@ -605,7 +604,16 @@ function advanced_help_get_topic_file_info($module, $topic) {
   );
 
   foreach ($paths as $path) {
-    if (file_exists("./$path/$info[file]")) {
+    if (substr($path, 0, 4) == 'http') {
+	  $file = $path . $info['file'];
+      $response = get_headers($file, 1);
+      $file_exists = (strpos($response[0], "404") === false);
+	}
+	else {
+	  $file = "./$path/$info[file]";
+	  $file_exists = file_exists($file);
+	}
+    if ($file_exists) {
       return array('path' => $path, 'file' => $info['file']);
     }
   }
@@ -628,7 +636,8 @@ function advanced_help_view_topic($module, $topic, $popup = FALSE) {
   $file_info = advanced_help_get_topic_file_info($module, $topic);
   if ($file_info) {
     $info = advanced_help_get_topic($module, $topic);
-    $file = "./$file_info[path]/$file_info[file]";
+	$prefix = (substr($file_info['path'], 0, 4) == 'http') ? NULL : './';
+    $file = $prefix . "$file_info[path]/$file_info[file]";
 
     $output = file_get_contents($file);
     if (isset($info['readme file']) && $info['readme file']) {
@@ -781,6 +790,11 @@ function _advanced_help_parse_ini() {
       if (file_exists("$module_path/help/$module.help.ini")) {
         $path = "$module_path/help";
         $info = parse_ini_file("./$module_path/help/$module.help.ini", TRUE);
+    		// allow alternate ini and html help file locations
+		    if (!empty($info['advanced help settings']['alternate ini'])) {
+          $response = drupal_http_request($info['advanced help settings']['alternate ini']);
+          $info = parse_ini_string($response->data, TRUE);
+     	  }
       }
       elseif (file_exists("$help_path/$module/$module.help.ini")) {
         $path = "$help_path/$module";
@@ -837,7 +851,7 @@ function _advanced_help_parse_ini() {
             // Require extension.
             'file' => isset($topic['readme file']) ? $file : $file . '.html',
             // Not in .ini file.
-            'path' => $path,
+            'path' => isset($cache['settings'][$module]['path']) ? $cache['settings'][$module]['path'] : $path,
             'line break' => isset($topic['line break']) ? $topic['line break'] : (isset($cache['settings'][$module]['line break']) ? $cache['settings'][$module]['line break'] : FALSE),
             'navigation' => isset($topic['navigation']) ? $topic['navigation'] : (isset($cache['settings'][$module]['navigation']) ? $cache['settings'][$module]['navigation'] : TRUE),
             'css' => isset($topic['css']) ? $topic['css'] : (isset($cache['settings'][$module]['css']) ? $cache['settings'][$module]['css'] : NULL),
