diff --git a/hierarchical_select.module b/hierarchical_select.module
index b9ace69..7077fec 100644
--- a/hierarchical_select.module
+++ b/hierarchical_select.module
@@ -722,6 +722,11 @@ function form_hierarchical_select_process($element, &$form_state, $complete_form
   list($element, $hs_selection, $db_selection) = _hs_process_exclusive_lineages($element, $hs_selection, $db_selection);
   $config = $element['#config'];
 
+  // We need to know the content type later on if we're dealing with node forms.
+  if (array_key_exists('nid',$form_state['values'])) {
+    $config['params']['type'] = $form_state['values']['type'];
+  }
+
   // Generate the $hierarchy and $dropbox objects using the selections that
   // were just calculated.
   $dropbox = (!$config['dropbox']['status']) ? FALSE : _hierarchical_select_dropbox_generate($config, $db_selection);
diff --git a/modules/hs_menu.module b/modules/hs_menu.module
index 9bf85d6..c8f4c11 100644
--- a/modules/hs_menu.module
+++ b/modules/hs_menu.module
@@ -116,8 +116,19 @@ function hs_menu_hierarchical_select_root_level($params) {
   $menus = array();
 
   $result = db_query("SELECT menu_name, title FROM {menu_custom} ORDER BY title");
-  while ($menu = $result->fetchObject()) {
-    $menus[$menu->menu_name . ':0'] = $menu->title;
+
+  if (isset($params['type'])) {
+    $type_menus = variable_get('menu_options_' . $params['type'], array('main-menu' => 'main-menu'));
+    while ($menu = $result->fetchObject()) {
+      if (in_array($menu->menu_name, $type_menus)) {
+        $menus[$menu->menu_name . ':0'] = $menu->title;
+      }
+    }
+  }
+  else {
+    while ($menu = $result->fetchObject()) {
+      $menus[$menu->menu_name . ':0'] = $menu->title;
+    }
   }
 
   return $menus;
