diff --git a/domain.admin.inc b/domain.admin.inc
index c251356..47dda4d 100644
--- a/domain.admin.inc
+++ b/domain.admin.inc
@@ -715,8 +715,8 @@ function domain_batch($action = NULL) {
   if (empty($domains)) {
     return t('There are no domains configured for this site.');
   }
-
-  $batch = module_invoke_all('domain_batch');
+  
+  $batch = domain_batch_actions();
   // We must have some actions, otherwise, no point.
   if (empty($batch)) {
     return t('There are no batch actions configured.');
diff --git a/domain.api.php b/domain.api.php
index 58131de..3ec577c 100644
--- a/domain.api.php
+++ b/domain.api.php
@@ -452,6 +452,21 @@ function hook_domain_batch() {
 }
 
 /**
+ * Allow modules to modify the batch editing functions.
+ *
+ * @see drupal_alter()
+ *
+ * @param &$batch
+ *   An array of batch editing functions, passed by reference.
+ * @return
+ *   No return value. Modify $batch by reference.
+ */
+function hook_domain_batch_alter(&$batch) {
+  // Rename 'Put site into maintenance mode'.
+  $batch['maintenance_mode']['#form']['#title'] = t('Take site offline');
+}
+
+/**
  * Return an array of forms for which we cannot run hook_form_alter().
  *
  * @return
diff --git a/domain.module b/domain.module
index 9313ff4..ba63a93 100644
--- a/domain.module
+++ b/domain.module
@@ -428,6 +428,9 @@ function domain_hook_info() {
   $hooks['domain_batch'] = array(
     'group' => 'domain',
   );
+  $hooks['domain_batch_alter'] = array(
+    'group' => 'domain',
+  );
   // Test that these work.
   $hooks['domain_bootstrap_lookup'] = array(
     'group' => 'domain',
@@ -3432,3 +3435,21 @@ function domain_check_for_update() {
     }
   }
 }
+
+/**
+ * Defines batch operations for domain settings.
+ *
+ * @return
+ *  An array of elements defined by hook_domain_batch().
+ */
+function domain_batch_actions() {
+  $batch = &drupal_static(__FUNCTION__);
+  if (!empty($batch)) {
+    return $batch;
+  }
+  // Get all implementations.
+  $batch = module_invoke_all('domain_batch');
+  // Allow modules to alter the list.
+  drupal_alter('domain_batch', $batch);
+  return $batch;
+}
diff --git a/domain_conf/domain_conf.admin.inc b/domain_conf/domain_conf.admin.inc
index cfc6fe6..55f5c84 100644
--- a/domain_conf/domain_conf.admin.inc
+++ b/domain_conf/domain_conf.admin.inc
@@ -45,7 +45,7 @@ function domain_conf_page($domain) {
  */
 function domain_conf_form($form, &$form_state, $domain) {
   $form = array();
-  $batch = module_invoke_all('domain_batch');
+  $batch = domain_batch_actions();
   $settings = array();
   $data = db_query("SELECT settings FROM {domain_conf} WHERE domain_id = :domain_id", array(':domain_id' => $domain['domain_id']))->fetchField();
   if (!empty($data)) {
diff --git a/domain_strict/domain_strict.test b/domain_strict/domain_strict.test
index d9c10cd..e67ac1c 100644
--- a/domain_strict/domain_strict.test
+++ b/domain_strict/domain_strict.test
@@ -8,8 +8,8 @@
 class DomainStrictTestCase extends DomainTestCase {
 
   public function setUp($list = array()) {
-    $modules = array('domain_strict');
-    parent::setUp($modules);
+    $list[] = 'domain_strict';
+    parent::setUp($list);
   }
 
   public static function getInfo() {
diff --git a/tests/domain.test b/tests/domain.test
index 104ba5f..4e28ed8 100644
--- a/tests/domain.test
+++ b/tests/domain.test
@@ -340,6 +340,13 @@ class DomainHookTest extends DomainTestCase {
     }
     $return = domain_get_domain();
     $this->assertTrue(!empty($return['test_full']), t('hook_domain_bootstrap_full() fired correctly.'));
+
+    // hook_domain_batch() should add a 'domain_test' array element.
+    $batch = domain_batch_actions();
+    $this->assertTrue(isset($batch['domain_test']), t('hook_domain_batch() fired correctly.'));
+    // hook_domain_batch_alter() changes values in the batch options.
+    $this->assertTrue($batch['maintenance_mode']['#form']['#title'] == t('Test reset value'), t('hook_domain_batch_alter() fired correctly.'));
+
   }
 
 }
diff --git a/tests/domain_test.module b/tests/domain_test.module
index b76a0fa..cdc016c 100644
--- a/tests/domain_test.module
+++ b/tests/domain_test.module
@@ -126,3 +126,41 @@ function domain_test_domain_bootstrap_full($domain) {
 function domain_test_domain_reassign($old_domain, $new_domain, $table) {
   domain_test_set($table);
 }
+
+/**
+ * Implements hook_domain_batch().
+ */
+function domain_test_domain_batch() {
+  // A simple function to rename my setting in Domain Configuration.
+  $batch = array();
+  $batch['domain_test'] = array(
+    '#form' => array(
+      '#title' => t('My Settings'),
+      '#type' => 'textfield',
+      '#size' => 40,
+      '#maxlength' => 80,
+      '#description' => t('A description for the form'),
+      '#required' => TRUE,
+    ),
+    '#permission' => 'administer domains',
+    '#domain_action' => 'domain_conf',
+    '#meta_description' => t('Edit my setting value.'),
+    '#variable' => 'domain_mysetting',
+    '#validate' => 'domain_mysetting_validate',
+    '#data_type' => 'string',
+    '#weight' => 0,
+    '#group' => t('My settings'),
+    '#collapsed' => FALSE,
+    '#update_all' => TRUE,
+    '#module' => t('Domain Access'),
+  );
+  return $batch;
+}
+
+/**
+ * Implements hook_domain_batch_alter().
+ */
+function domain_test_domain_batch_alter(&$batch) {
+  // Rename 'Put site into maintenance mode'.
+  $batch['maintenance_mode']['#form']['#title'] = t('Test reset value');
+}
