diff -urbNP taxonomy_menu_trails.orig/taxonomy_menu_trails.inc taxonomy_menu_trails/taxonomy_menu_trails.inc
--- taxonomy_menu_trails.orig/taxonomy_menu_trails.inc	2010-10-09 20:39:27.000000000 +0400
+++ taxonomy_menu_trails/taxonomy_menu_trails.inc	2010-11-13 13:11:15.000000000 +0300
@@ -19,7 +19,19 @@
 
 function _taxonomy_menu_trails_process($item) {
   $href = NULL;
-  $taxonomy = &$item['page_arguments'][0]->taxonomy;
+  $node = $item['page_arguments'][0];
+  $types = variable_get('taxonomy_menu_trails_node_types', array());
+  if (empty($types[$node->type])) {
+    return;
+  }
+  $vids = $types[$node->type];
+  $taxonomy_all = &$item['page_arguments'][0]->taxonomy;
+  $taxonomy = array();
+  foreach ($taxonomy_all as $tid => $term) {
+    if (in_array($term->vid, $vids)) {
+      $taxonomy[$tid] = $term;
+    }
+  }
   switch (variable_get('taxonomy_menu_trails_selection_method', 'first')) {
     case 'first':
       $term = reset($taxonomy);
@@ -44,7 +56,6 @@
       }
       break;
     case 'deepest-in-lineage':
-      $node = $item['page_arguments'][0];
       $term = _taxonomy_menu_trails_get_deepest_term($node);
       break;
     default:
