diff --git supercron-main.inc supercron-main.inc
index 95a58ee..cc52467 100644
--- supercron-main.inc
+++ supercron-main.inc
@@ -213,15 +213,17 @@ function supercron_exit() {
     if ($execute) _supercron_parallel_call(url(supercron_autocron_url(), array('absolute'=>TRUE)));
 }
 
-
+/* This function is just wrong.  See http://drupal.org/node/749606
 function supercron_base_path() {
   global $base_path;
 
   return str_replace('/index.php', '', $_SERVER['SCRIPT_FILENAME']) . $base_path;
 }
+*/
 
 function supercron_standard_path() {
-  return supercron_base_path() . SUPERCRON_SCRIPT_NAME;
+  global $base_path;
+  return $base_path . SUPERCRON_SCRIPT_NAME;
 }
 
 function supercron_get_script_URL() {
@@ -246,7 +248,7 @@ function supercron_get_script_path() {
     return supercron_standard_path();
   }
   elseif ($script_path == SUPERCRON_SCRIPT_PATH_MODULE_ROOT) {
-    return str_replace('supercron.module', '', realpath(__FILE__)) . SUPERCRON_SCRIPT_NAME;
+    return drupal_get_path('module','supercron').'/'.SUPERCRON_SCRIPT_NAME;
   }
   else {
     return '';
diff --git supercron.admin.inc supercron.admin.inc
index e7656ae..352e221 100644
--- supercron.admin.inc
+++ supercron.admin.inc
@@ -18,8 +18,8 @@ function _supercron_check_requirements() {
           . ' that is done, your tasks will not execute when scheduled to.',
         array(
           '!script' => SUPERCRON_SCRIPT_NAME,
-          '!here'   => supercron_base_path() . drupal_get_path('module', 'supercron'),
-          '!path'   => supercron_base_path()
+          '!here'   => realpath(dirname(__FILE__)),
+          '!path'   => realpath('.' . $base_path),
         )
       );
 
@@ -138,6 +138,7 @@ function supercron_get_formatted_stats() {
  * SuperCron settings form.
  */
 function supercron_settings(&$form_state) {
+  global $base_path;
   // Check requirements
   _supercron_check_requirements();
 
@@ -162,8 +163,8 @@ function supercron_settings(&$form_state) {
       $message .= ' scheduled to.';
       $message = t($message, array(
         '!script' => SUPERCRON_SCRIPT_NAME,
-        '!here'   => supercron_base_path() . drupal_get_path('module', 'supercron'),
-        '!path'   => supercron_base_path()
+        '!here'   => realpath(dirname(__FILE__)),
+        '!path'   => realpath('.' . $base_path),
       ));
 
       drupal_set_message($message, 'warning');
diff --git supercron.crontab-admin.inc supercron.crontab-admin.inc
index 5611323..f2bc084 100644
--- supercron.crontab-admin.inc
+++ supercron.crontab-admin.inc
@@ -8,6 +8,7 @@
 
 
 function supercron_invocation_form(&$form_state) {
+  global $base_path;
   $module_path = drupal_get_path('module', 'supercron');
   drupal_add_js("{$module_path}/js/ZeroClipboard.js");
   drupal_add_js("{$module_path}/js/supercron.crontab.js");
@@ -36,7 +37,7 @@ function supercron_invocation_form(&$form_state) {
     : $supercron_script_path,
     '#options'   => array(
       SUPERCRON_SCRIPT_PATH_DRUPAL_ROOT => t('Drupal root (@path)', array('@path' => supercron_standard_path())),
-      SUPERCRON_SCRIPT_PATH_MODULE_ROOT => t('Module root (@path)', array('@path' => supercron_base_path() . drupal_get_path('module', 'supercron') . '/supercron.php')),
+      SUPERCRON_SCRIPT_PATH_MODULE_ROOT => t('Module root (@path)', array('@path' => $base_path . drupal_get_path('module', 'supercron') . '/supercron.php')),
       SUPERCRON_SCRIPT_PATH_CUSTOM      => t('Other place')
     ),
   );
