diff --git a/modules/menu.workbench_access.inc b/modules/menu.workbench_access.inc
index a7a1b94..d444ca8 100644
--- a/modules/menu.workbench_access.inc
+++ b/modules/menu.workbench_access.inc
@@ -77,6 +77,12 @@ function menu_workbench_access_configuration(&$form, &$form_state) {
       ),
     ),
   );
+  $form['menu_workbench_access_info']['workbench_access_menu_limit'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Limit available menu items based on Workbench Access.'),
+    '#description' => t('If checked, when creating nodes, users will not be able to choose a parent menu item to which they do not have editorial access.'),
+    '#default_value' => variable_get('workbench_access_menu_limit', FALSE),
+  );
 }
 
 /**
@@ -233,3 +239,48 @@ function workbench_access_menu_link_delete($link) {
     workbench_access_section_delete($access_scheme);
   }
 }
+
+/**
+* Executes a form alter on a specific FieldAPI form element.
+*/
+function menu_workbench_access_default_form_alter(&$form, &$form_state, $options) {
+  // Nothing to do if we're not limiting menu items, or if the user already
+  // has no menu options from which to choose.
+  if (!isset($form['menu']) || !variable_get('workbench_access_menu_limit', FALSE)) {
+    return;
+  }
+
+  $tree = workbench_access_get_user_tree();
+  $active = workbench_access_get_active_tree();
+  $parent = &$form['menu']['link']['parent'];
+  $current = $parent['#options'];
+
+  foreach ($parent['#options'] as $key => $value) {
+    $ids = explode(':', $key);
+    $menu = $ids[0];
+    $plid = $ids[1];
+    // unset if the user does not not have access to this item and the item
+    // is not the current parent.#
+    if (!isset($options[$plid]) && !isset($options[$menu]) && $key != $parent['#default_value']) {
+      unset($parent['#options'][$key]);
+    }
+  }
+
+  if (array_key_exists($parent['#default_value'], $parent['#options'])) {
+    $default = explode(':', $parent['#default_value']);
+    if ($default[1] != 0 && !isset($tree[$active['tree'][$default[1]]['parent']])) {
+      $parent['#description'] = t('<strong>Note:</strong> since you do not have rights to the parent of this menu item, if you change the parent you may not be able to restore it to it\'s original value.');
+    }
+  }
+
+  // Inform Workbench Access which data element we store on the node.
+  // (e.g.) $node->{$field}[LANGUAGE][][COLUMN].
+  $form['workbench_access_column'] = array(
+    '#type' => 'value',
+    '#value' => 'mlid',
+  );
+  $form['workbench_access_language'] = array(
+    '#type' => 'value',
+    '#value' => FALSE,
+  );
+}
