diff --git a/expire.admin.inc b/expire.admin.inc
index b6f19b6..24ee7f5 100644
--- a/expire.admin.inc
+++ b/expire.admin.inc
@@ -581,18 +581,62 @@ function expire_admin_settings_form() {
       '#title' => t('What menus should expire their page urls (and at what depth) when menu is updated?'),
     );
 
+    $expire_menu_link_override_menus = array_filter(variable_get('expire_menu_link_override_menus', array()));
+
     $options = array();
-    for ($i = 0; $i <= MENU_MAX_DEPTH; $i++) {
+    for ($i = 1; $i <= MENU_MAX_DEPTH; $i++) {
       $options[$i] = $i ? t('@depth depth', array('@depth' => $i)) : t('None');
     }
 
+    $form['tabs']['menu_links']['expire_menu_link_override_menus']['select_type'] = array(
+      '#type' => 'radios',
+      '#title' => t('Select which menus should expire their page urls when a menu is updated:'),
+      '#options' => array(
+        'include' => t('Only the selected menus'),
+        'exclude' => t('All menus except the selected menus'),
+      ),
+      '#default_value' => $expire_menu_link_override_menus['select_type'],
+    );
+
+    $form['tabs']['menu_links']['expire_menu_link_override_menus']['default_depth'] = array(
+      '#type' => 'select',
+      '#title' => 'Number of levels to be expired for all menus not excluded',
+      '#options' => $options,
+      '#default_value' => $expire_menu_link_override_menus['default_depth'],
+      '#states' => array(
+        'visible' => array(
+          ':input[name="expire_menu_link_override_menus[select_type]"]' => array('value' => 'exclude'),
+        ),
+      ),
+    );
+
+    $form['tabs']['menu_links']['expire_menu_link_override_menus']['menus'] = array(
+      '#type' => 'container',
+    );
+
     $menu_options = array_filter(variable_get('expire_menu_link_override_menus', array()));
     foreach (menu_get_menus() as $menu_name => $menu_label) {
-      $form['tabs']['menu_links']['expire_menu_link_override_menus'][$menu_name] = array(
+      $form['tabs']['menu_links']['expire_menu_link_override_menus']['menus'][$menu_name] = array(
+        '#type' => 'fieldset',
+      );
+
+      $form['tabs']['menu_links']['expire_menu_link_override_menus']['menus'][$menu_name]['select'] = array(
+        '#type' => 'checkbox',
+        '#title' => check_plain($menu_label),
+        '#default_value' => !empty($menu_options['menus'][$menu_name]['select']) ? $menu_options['menus'][$menu_name]['select'] : 0,
+      );
+
+      $form['tabs']['menu_links']['expire_menu_link_override_menus']['menus'][$menu_name]['depth'] = array(
         '#type' => 'select',
         '#options' => $options,
-        '#default_value' => !empty($menu_options[$menu_name]) ? $menu_options[$menu_name] : 0,
-        '#title' => check_plain($menu_label),
+        '#default_value' => !empty($menu_options['menus'][$menu_name]['depth']) ? $menu_options['menus'][$menu_name]['depth'] : 0,
+        '#title' => 'Number of levels to be expired in the <em>' . check_plain($menu_label) . '</em> menu:',
+        '#states' => array(
+          'visible' => array(
+            ':input[name="expire_menu_link_override_menus[select_type]"]' => array('value' => 'include'),
+            ':input[name="expire_menu_link_override_menus[menus][' . $menu_name . '][select]"]' => array('checked' => TRUE),
+          ),
+        ),
       );
     }
   }
diff --git a/expire.install b/expire.install
index 36b8bc4..ea02779 100644
--- a/expire.install
+++ b/expire.install
@@ -23,3 +23,24 @@ function expire_uninstall() {
 function expire_update_7201() {
 
 }
+
+/**
+ * Convert 'expire_menu_link_override_menus' variable.
+ */
+function expire_update_7202() {
+
+  $menus = variable_get('expire_menu_link_override_menus');
+  $var = array();
+  $var['select_type'] = 'include';
+  $var['default_depth'] = '9';
+  foreach ($menus as $menu => $depth) {
+    if ($depth != 0) {
+    $var['menus'][$menu]['select'] = 1;
+    $var['menus'][$menu]['depth'] = $depth;
+    }
+    else {
+      $var['menus'][$menu]['select'] = 0;
+    }
+  }
+  variable_set('expire_menu_link_override_menus', $var);
+}
\ No newline at end of file
diff --git a/includes/expire.menu_link.inc b/includes/expire.menu_link.inc
index d534452..810297f 100644
--- a/includes/expire.menu_link.inc
+++ b/includes/expire.menu_link.inc
@@ -25,15 +25,23 @@ class ExpireMenuLink implements ExpireInterface {
     if (!$skip_action_check && !in_array($action, array_filter(variable_get('expire_menu_link_actions', array())))) {
       return;
     }
+    $settings = array_filter(variable_get('expire_menu_link_override_menus', array()));
 
     // Ensure that this menu is expirable.
-    $settings = array_filter(variable_get('expire_menu_link_override_menus', array()));
-    if (empty($menu_link['mlid']) || !array_key_exists($menu_link['menu_name'], $settings)) {
+    if (empty($menu_link['mlid'])
+    || ($settings['select_type'] == 'include' && $settings['menus'][$menu_link['menu_name']]['select'] != '1')
+    || ($settings['select_type'] == 'exclude' && isset($settings['menus'][$menu_link['menu_name']]['select']) && $settings['menus'][$menu_link['menu_name']]['select'] == '1')
+    ) {
       return;
     }
 
     // Ensure that current menu item level is not higher than required.
-    $depth = $settings[$menu_link['menu_name']];
+    if ($settings['select_type'] == 'include') {
+      $depth = $settings['menus'][$menu_link['menu_name']]['depth'];
+    }
+    else {
+      $depth = $settings['default_depth'];
+    }
     if (!empty($menu_link['depth']) && $menu_link['depth'] > $depth) {
       return;
     }
