--- google_auth.module	2009-06-29 09:59:04.000000000 -0400
+++ google_auth.module.new	2010-11-11 14:59:13.000000000 -0500
@@ -46,10 +46,13 @@
   if (empty($variables->redirect)) {
     $variables->redirect = '<front>';
   }
+  if(empty($variables->url)) {
+    $variables->url = 'https://www.google.com/accounts/AuthSubRequest';
+  }
 
   if (!isset($_SESSION['google_auth_token'])) {
     $data['scope'] = $variables->scope;
-    $data['url'] = 'https://www.google.com/accounts/AuthSubRequest';
+    $data['url'] = $variables->url;
     $data["secure"] = $variables->secure;
     $data["session"] = $variables->session;
     $data["next"] = _google_auth_next();
@@ -93,8 +96,8 @@
   */
 function _google_auth_sub_request($data) {
   $url = $data['url'];
-  $url .= '?next='. drupal_urlencode($data['next']);
-  $url .= '&scope='. drupal_urlencode($data['scope']);
+  $url .= '?next='. urlencode($data['next']);
+  $url .= '&scope='. urlencode($data['scope']);
   $url .= "&session=". $data['session'];
 
   if (!isset($_GET["token"])) {
@@ -106,8 +109,7 @@
     // exchange the single use token for a session token from Google
     $headers['Content-Type'] = 'application/x-www-form-urlencoded';
     $headers['Authorization'] = 'AuthSub token="'. $_GET["token"] .'"';
-    $session_request = str_replace( "AuthSubRequest", "AuthSubSessionToken", $url);
-    $session_exchange = drupal_http_request($session_request, $headers);
+    $session_exchange = drupal_http_request('https://www.google.com/accounts/AuthSubSessionToken', $headers);
     if ($session_exchange->code == 200) {
       $token = str_replace('Token=', '', $session_exchange->data);
       $_SESSION['google_auth_token'] = trim($token);
