Index: ubercart/uc_cart/uc_cart.module
===================================================================
--- ubercart/uc_cart/uc_cart.module	(revision 966)
+++ ubercart/uc_cart/uc_cart.module	(working copy)
@@ -346,7 +346,7 @@
     else {
       // Path needs to be an internal path so we can pass it to url() later.
       // Strip off the base path.
-      $path = substr($p['path'], drupal_strlen(base_path()));
+      $path = $p['path'];
     }
 
     // Figure out the destination.
@@ -364,7 +364,7 @@
     }
 
     // Build the new #action url.
-    $form['#action'] = url($path, array('query' => $query, 'fragment' => $p['fragment']));
+    $form['#action'] = url($path, array('external' => TRUE, 'query' => $query, 'fragment' => $p['fragment']));
   }
 
   if ($form_id == 'user_login' || $form_id == 'user_login_block') {
