diff --git a/includes/form.inc b/includes/form.inc
index a80460477d6e89bc19c6ff2c5607dc0b3d195108..83e37c38570a9185c19f95a5139b864396b7a92c 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -2890,6 +2890,8 @@ function batch_set($batch_definition) {
 function batch_process($redirect = NULL, $url = NULL) {
   $batch =& batch_get();
 
+  drupal_theme_initialize();
+  
   if (isset($batch)) {
     // Add process information
     $url = isset($url) ? $url : 'batch';
@@ -2899,6 +2901,7 @@ function batch_process($redirect = NULL, $url = NULL) {
       'url' => isset($url) ? $url : 'batch',
       'source_page' => $_GET['q'],
       'redirect' => $redirect,
+      'theme' => $GLOBALS['theme_key'],
     );
     $batch += $process_info;
 
diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc
index bd7f54effdee0dd41b7f3a990948ff3bad704dae..b4aa10446cf79dfaa27d7842e5d012a4584df455 100644
--- a/modules/system/system.admin.inc
+++ b/modules/system/system.admin.inc
@@ -1928,6 +1928,11 @@ function system_php() {
 function system_batch_page() {
   require_once DRUPAL_ROOT . '/includes/batch.inc';
   $output = _batch_page();
+  
+  // Use the same theme that the page that started the batch.
+  $batch = &batch_get();
+  $GLOBALS['custom_theme'] = $batch['theme'];
+
   if ($output === FALSE) {
     drupal_access_denied();
   }