diff --git a/includes/admin.form.inc b/includes/admin.form.inc
index c233be2c..42b197ec 100644
--- a/includes/admin.form.inc
+++ b/includes/admin.form.inc
@@ -72,7 +72,6 @@ function islandora_repository_admin(array $form, array &$form_state) {
'#title' => t('Time to Claim Objects for'),
'#default_value' => variable_get('islandora_semaphore_period', 600),
'#description' => t('Time in seconds to claim objects for modification.'),
- '#required' => TRUE,
'#states' => array(
'invisible' => array(
':input[name="islandora_use_object_semaphores"]' => array('checked' => FALSE),
@@ -141,6 +140,21 @@ function islandora_repository_admin(array $form, array &$form_state) {
return system_settings_form($form);
}
+/**
+ * Validate the admin form.
+ */
+function islandora_repository_admin_validate($form, &$form_state) {
+ // Only validate semaphore period if semaphores are enabled.
+ if ($form_state['values']['islandora_use_object_semaphores']) {
+ if ($form_state['values']['islandora_semaphore_period']) {
+ element_validate_integer_positive($form['islandora_tabs']['islandora_general']['islandora_semaphore_period'], $form_state);
+ }
+ else {
+ form_set_error('islandora_semaphore_period', t('Time to Claim Objects for must not be empty if Make Processes Claim Objects for Modification is checked.'));
+ }
+ }
+}
+
/**
* Gets a message which describes if the repository is accessible.
*