diff --git a/ctm.module b/ctm.module
index 6f96d42..d0828c9 100644
--- a/ctm.module
+++ b/ctm.module
@@ -1,40 +1,53 @@
 <?php
 
+define('CTM_MODE_ALL', 1);
+define('CTM_MODE_NONE', 2);
+define('CTM_MODE_INCLUDE', 3);
+define('CTM_MODE_EXCLUDE', 4);
+
+/**
+ * Implementation of hook_form_alter(). Menu Settings for Content Type.
+ */
+function ctm_menu() {
+  $items = array();
+
+  $items['admin/settings/ctm'] = array(
+    'title' => 'Menu settings per content type',
+    'descriptions' => 'Define which menus should be available when creating content',
+  	'page callback' => 'drupal_get_form', 
+    'page arguments' => array('ctm_admin_settings'), 
+    'access arguments' => array('administer menu'),
+  );
+
+  return $items;
+}
+
 /**
  * Implementation of hook_form_alter(). Menu Settings for Content Type.
  */
 function ctm_form_alter(&$form, $form_state, $form_id) {
   // Menu Setting for content types - Content Type Form
   if ($form_id == 'node_type_form') {
-    $form['menu_settings'] = array(
-      '#type' => 'fieldset',
-      '#title' => t('Menu Settings'),
-      '#description' => t('Enable Menu Settings for this content type.'),
-      '#collapsible' => TRUE,
-    );
-    $default_values = variable_get($form['#node_type']->type.'_menu_settings', array());
-    //$default_values = $default_values ? $default_values : array();
-    $options = menu_get_menus();
-    $form['menu_settings']['menu'] = array(
-      '#type' => 'checkboxes',
-      '#title' => t('Enable the Menus you want to be available for this Content Type'),
-      '#default_value' => $default_values,
-      '#options' => $options,
-      );  
-    $form['#submit'][] = 'ctm_node_type_form_submit';
+    // Add the settings form element
+    $form = array_merge($form, _ctm_settings_form_elements($form['#node_type']->type));
+    $form['#submit'][] = 'ctm_settings_form_submit';
   }
   // Menu Settings for Node Edit (Form)
   elseif (isset($form['#node']) && $form['#node']->type .'_node_form' == $form_id) {
+    $menu_mode = variable_get($form['#node']->type.'_menu_settings_mode', variable_get('ctm_menu_settings_mode', CTM_MODE_INCLUDE));
+    $menu_settings = variable_get($form['#node']->type.'_menu_settings', variable_get('ctm_menu_settings', array()));
+     
+    // Filter menus based on mode
     global $user;
     if ($user->uid != 1) {
-      $menu_settings = variable_get($form['#node']->type.'_menu_settings', array());
-      if ($menu_settings) {
-        $menus = array_intersect_key(menu_get_menus(), $menu_settings);
+      if (($menu_mode == CTM_MODE_INCLUDE) || ($menu_mode == CTM_MODE_EXCLUDE)) {
+        $menus = ($menu_mode == CTM_MODE_INCLUDE) ? array_intersect_key(menu_get_menus(), $menu_settings) : array_diff_key(menu_get_menus(), $menu_settings);
         $options = menu_parent_options($menus, $form['menu']['#item']);
         $form['menu']['parent']['#options'] = $options;
-      } else {
+      } elseif ($menu_mode == CTM_MODE_NONE) {
         $form['menu']['#access'] = FALSE;
       }
+      // Otherwise we do not touch the menu.
     }
   }
   // Delete Content Type
@@ -44,20 +57,97 @@ function ctm_form_alter(&$form, $form_state, $form_id) {
 }
 
 /**
- *  Content Type Form Submit - Save Menu Settings for Content Type. 
+ *  Settings Submit - Save Menu Settings.
  */
-function ctm_node_type_form_submit(&$form, $form_state) {
+function ctm_settings_form_submit(&$form, $form_state) {
+  $prefix = ($form_state['values']['type']) ? $form_state['values']['type'] : 'ctm';
+
+  $menu_settings_mode = $form_state['values']['menu_settings_mode'];
   $menu_settings = array_filter($form_state['values']['menu']);
-  if ($menu_settings) {
-     variable_set($form_state['values']['type'].'_menu_settings', $menu_settings);
+
+  variable_set($prefix.'_menu_settings_mode', $form_state['values']['menu_settings_mode']);
+  // Only set menu settings if an applicable mode is selected
+  if ((($menu_settings_mode == CTM_MODE_INCLUDE) || ($menu_settings_mode == CTM_MODE_EXCLUDE))
+  && $menu_settings) {
+    variable_set($prefix.'_menu_settings', $menu_settings);
   } else {
-     variable_del($form_state['values']['type'].'_menu_settings');
+    variable_del($prefix.'_menu_settings');
+  }
+
+  // Only set a message if we are saving default settings
+  if (!$form['#id'] = 'ctm-admin-settings') {
+    drupal_set_message('Default menu settings have been saved.');
   }
 }
 
 /**
- *  Delete Content Type Form Submit - Delete Menu Settings Variable. 
+ *  Delete Content Type Form Submit - Delete Menu Settings Variable.
  */
 function ctm_node_type_delete_confirm(&$form, $form_state) {
+  variable_del($form_state['values']['type'].'_menu_settings_mode');
   variable_del($form_state['values']['type'].'_menu_settings');
 }
+
+/**
+ * Administration form for for setting default settings.
+ */
+function ctm_admin_settings() {
+  $form = array();
+  $form = array_merge($form, _ctm_settings_form_elements());
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save settings'),
+  );
+  $form['#submit'] = array('ctm_settings_form_submit');
+
+  return $form;
+}
+
+/**
+ * General form structure for adding menu settings elements to a form.
+ */
+function _ctm_settings_form_elements($content_type = NULL) {
+  $form = array();
+
+  $form['menu_settings'] = array(
+	  '#type' => 'fieldset',
+	  '#title' => t('Menu Settings'),
+	  '#description' => ($content_type) ? t('Enable menu settings for %content_type.', array('%content_type' => $content_type)) :  t('Enable default menu settings.'),
+	  '#collapsible' => TRUE,
+  );
+
+  $options = array(
+  CTM_MODE_ALL => t('All menus (Drupal default)'),
+  CTM_MODE_NONE => t('No menus (disable menu selection)'),
+  CTM_MODE_INCLUDE => t('Only the selected menus'),
+  CTM_MODE_EXCLUDE => t('All menus except the selected menus'),
+  );
+
+  //Extract default value - if for a content type we fall back to overall default
+  $default_value = variable_get('ctm_menu_settings_mode', CTM_MODE_INCLUDE);
+  if ($content_type) {
+    $default_value = variable_get($content_type.'_menu_settings_mode', $default_value);
+  }
+  $form['menu_settings']['menu_settings_mode'] = array(
+    '#type' => 'radios',
+    '#title' => t('Choose the menu selection mode'),
+	  '#default_value' => $default_value,
+	  '#options' => $options,
+  );
+
+  //Extract default values - if for a content type we fall back to overall default
+  $default_values = variable_get('ctm_menu_settings', array());
+  if ($content_type) {
+    $default_values = variable_get($content_type.'_menu_settings', $default_values);
+  }
+
+  $options = menu_get_menus();
+  $form['menu_settings']['menu'] = array(
+    	'#type' => 'checkboxes',
+    	'#title' => ($content_type) ? t('Enable the Menus you want to be available for this Content Type.') : t('Enable the Menus you want to be available.'),
+	  	'#default_value' => $default_values,
+	  	'#options' => $options,
+  );
+
+  return $form;
+}
\ No newline at end of file
