diff --git a/expire.admin.inc b/expire.admin.inc
index 8de24db..c3df3ce 100644
--- a/expire.admin.inc
+++ b/expire.admin.inc
@@ -893,6 +893,7 @@ function expire_taxonomy_term_settings_form(&$form) {
     '#collapsible' => TRUE,
     '#collapsed' => TRUE,
     '#group' => 'additional_settings',
+    '#tree' => TRUE,
   );
 
   // TAXONOMY TERM SETTINGS.
@@ -909,10 +910,10 @@ function expire_taxonomy_term_settings_form(&$form) {
 
   // Display fieldsets with settings only if they should be overriden.
   $form['expire']['taxonomy_term_actions']['#states'] = array(
-    'visible' => array(':input[name="expire_taxonomy_term_override_defaults"]' => array('checked' => TRUE)),
+    'visible' => array(':input[name="expire[expire_taxonomy_term_override_defaults]"]' => array('checked' => TRUE)),
   );
   $form['expire']['taxonomy_term_expires']['#states'] = array(
-    'visible' => array(':input[name="expire_taxonomy_term_override_defaults"]' => array('checked' => TRUE)),
+    'visible' => array(':input[name="expire[expire_taxonomy_term_override_defaults]"]' => array('checked' => TRUE)),
   );
 
   // Change tab title to more suitable here.
@@ -935,6 +936,11 @@ function expire_taxonomy_term_settings_form(&$form) {
     if (module_exists('field_collection')) {
       $form['expire']['taxonomy_term_expires']['expire_taxonomy_term_reference_field_collection_pages']['#default_value'] =
         variable_get('expire_taxonomy_term_reference_field_collection_pages_' . $vocabulary, EXPIRE_TAXONOMY_TERM_REFERENCE_FC_PAGES);
+      $form['expire']['taxonomy_term_expires']['expire_taxonomy_term_reference_field_collection_pages']['#states'] = array(
+        'visible' => array(
+          ':input[name="expire[taxonomy_term_expires][expire_taxonomy_term_reference_pages]"]' => array('checked' => TRUE),
+        ),
+      );
     }
   }
 
@@ -943,6 +949,11 @@ function expire_taxonomy_term_settings_form(&$form) {
 
   $form['expire']['taxonomy_term_expires']['expire_taxonomy_term_custom_pages']['#default_value'] =
     variable_get('expire_taxonomy_term_custom_pages_' . $vocabulary);
+  $form['expire']['taxonomy_term_expires']['expire_taxonomy_term_custom_pages']['#states'] = array(
+    'visible' => array(
+      ':input[name="expire[taxonomy_term_expires][expire_taxonomy_term_custom]"]' => array('checked' => TRUE),
+    ),
+  );
 
   // Attach js.
   $form['#attached']['js'][] = drupal_get_path('module', 'expire') . '/js/expire.admin.js';
diff --git a/expire.module b/expire.module
index 6eb8021..4fbc223 100644
--- a/expire.module
+++ b/expire.module
@@ -152,6 +152,26 @@ function expire_form_taxonomy_form_vocabulary_alter(&$form, &$form_state) {
 }
 
 /**
+ * Implements hook_taxonomy_vocabulary_insert().
+ */
+function expire_taxonomy_vocabulary_insert($vocabulary) {
+  expire_taxonomy_vocabulary_update($vocabulary);
+}
+
+/**
+ * Implements hook_taxonomy_vocabulary_update().
+ */
+function expire_taxonomy_vocabulary_update($vocabulary) {
+  variable_set('expire_taxonomy_term_override_defaults_' . $vocabulary->machine_name,
+        $vocabulary->expire['expire_taxonomy_term_override_defaults']);
+  variable_set('expire_taxonomy_term_actions_' . $vocabulary->machine_name, 
+        $vocabulary->expire['taxonomy_term_actions']['expire_taxonomy_term_actions']);
+  foreach ($vocabulary->expire['taxonomy_term_expires'] as $setting_key => $setting_value) {
+    variable_set($setting_key . '_' . $vocabulary->machine_name, $setting_value);
+  }
+}
+
+/**
  * Implements hook_taxonomy_term_insert().
  */
 function expire_taxonomy_term_insert($taxonomy_term) {
