--- keys.module (saved version)
+++ (current document)
@@ -286,9 +286,15 @@
 }
 
 function keys_get_url() {
-  global $base_url;
+  static $url;
 
-  return $base_url . request_uri();
+  if (!$url) {
+    $protocol = ($_SERVER['HTTPS'] == 'on') ? 'https' : 'http';
+    $uri = substr($_SERVER['REQUEST_URI'], strlen(base_path()) - 1);
+    $url = $protocol .'://'. keys_get_domain() . $uri;
+  }
+
+  return $url;
 }
 
 function keys_get_domain() {
@@ -296,11 +302,9 @@
 
   if (!$domain) {
     $domain = $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] == 80 ? '' : ':'. $_SERVER['SERVER_PORT']);
-    $base_path = base_path();
-    if ($base_path != '/') {
-      $domain .= $base_path;
-      $domain = ltrim($domain, '/');
-    }
+    $domain .= base_path();
+    $domain = trim($domain, '/');
   }
+
   return $domain;
 }
