diff --git a/modules/overlay/overlay.module b/modules/overlay/overlay.module
index 2e86955b34cc6412a52646ee654225fe9a18189e..2f7f77a9730dc1937058858c672c41a179279371 100644
--- a/modules/overlay/overlay.module
+++ b/modules/overlay/overlay.module
@@ -517,8 +517,8 @@ function overlay_request_dialog_close($value = NULL) {
  *   The path that should open in the parent window after the overlay closes.
  */
 function overlay_close_dialog($redirect = NULL) {
-  if (empty($redirect)) {
-    $path = $_GET['q'];
+  if (!isset($redirect)) {
+    $redirect = current_path();
   }
   $settings = array(
     'overlayChild' => array(
diff --git a/modules/system/system.module b/modules/system/system.module
index 58d135ffb390968efe9902ec9fb5076e317bddce..ba88f5678707b9b2c7b65b5bf649822fa29d19bf 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -3591,6 +3591,7 @@ function system_admin_paths() {
   $paths = array(
     'admin' => TRUE,
     'admin/*' => TRUE,
+    'batch' => TRUE,
   );
   return $paths;
 }