diff --git a/hosting_backup_queue/hosting_backup_queue.module b/hosting_backup_queue/hosting_backup_queue.module
index 0747a7a..a6811c6 100644
--- a/hosting_backup_queue/hosting_backup_queue.module
+++ b/hosting_backup_queue/hosting_backup_queue.module
@@ -201,25 +201,31 @@ function hosting_backup_queue_form_alter(&$form, $form_state, $form_id) {
       '#title' => t('Backup schedule'),
     );
 
-    $form['hosting_backup_queue']['hosting_backup_queue_settings'] = array(
+    $form['hosting_backup_queue']['hosting_backup_queue_status'] = array(
       '#type' => 'radios',
-      '#title' => t('Backup schedule settings'),
-      '#default_value' => isset($form['#node']->hosting_backup_queue_settings) ? $form['#node']->hosting_backup_queue_settings : 'default',
+      '#title' => t('Scheduler status'),
+      '#default_value' => isset($form['#node']->hosting_backup_queue_status) ? $form['#node']->hosting_backup_queue_status : variable_get('hosting_backup_queue_default_enabled', TRUE) ? 'enabled' : 'disabled',
       '#required' => TRUE,
       '#options' => array(
-        'default' => t('Default settings'),
-        'custom' => t('Site specific settings'),
+        'enabled' => t('Backups enabled'),
+        'disabled' => t('Backups disabled'),
       ),
     );
 
-    $form['hosting_backup_queue']['hosting_backup_queue_status'] = array(
+    $form['hosting_backup_queue']['hosting_backup_queue_settings'] = array(
       '#type' => 'radios',
-      '#title' => t('Scheduler status'),
-      '#default_value' => isset($form['#node']->hosting_backup_queue_status) ? $form['#node']->hosting_backup_queue_status : variable_get('hosting_backup_queue_default_enabled', TRUE) ? 'enabled' : 'disabled',
+      '#title' => t('Backup schedule settings'),
+      '#default_value' => isset($form['#node']->hosting_backup_queue_settings) ? $form['#node']->hosting_backup_queue_settings : 'default',
       '#required' => TRUE,
       '#options' => array(
-        'enabled' => t('Backups enabled'),
-        'disabled' => t('Backups disabled'),
+        'default' => t('Default settings'),
+        'custom' => t('Site specific settings'),
+      ),
+      '#states' => array(
+        // Only visible this field when backups is enabled.
+        'visible' => array(
+          ':input[name="hosting_backup_queue_status"]' => array('value' => 'enabled'),
+        ),
       ),
     );
 
@@ -239,6 +245,16 @@ function hosting_backup_queue_form_alter(&$form, $form_state, $form_id) {
       '#default_value' => isset($form['#node']->hosting_backup_queue_schedule) ? $form['#node']->hosting_backup_queue_schedule : variable_get('hosting_backup_queue_default_interval', strtotime('1 day', 0)),
       '#required' => TRUE,
       '#options' => $intervals,
+      '#states' => array(
+        // Only enable this field when the 'Site specific settings' is enabled.
+        'enabled' => array(
+          ':input[name="hosting_backup_queue_settings"]' => array('value' => 'custom'),
+        ),
+        // Only visible this field when backups is enabled.
+        'visible' => array(
+          ':input[name="hosting_backup_queue_status"]' => array('value' => 'enabled'),
+        ),   
+      ),
     );
     return $form;
   }
