diff --git a/includes/form.inc b/includes/form.inc
index e6d2a6a..39a8092 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -632,6 +632,7 @@ function drupal_render_form($form_id, &$form) {
  *   to if none is specified by the form.
  */
 function drupal_redirect_form($form, $redirect = NULL) {
+  global $base_url;
   $goto = NULL;
   if (isset($redirect)) {
     $goto = $redirect;
@@ -648,7 +649,9 @@ function drupal_redirect_form($form, $redirect = NULL) {
         drupal_goto($goto);
       }
     }
-    drupal_goto($_GET['q']);
+    // We use base_url here to make an absolute URL so this does not get
+    // encoded.
+    drupal_goto($base_url . request_url());
   }
 }
 
