diff -rupN taxonomy_breadcrumb_original/taxonomy_breadcrumb.admin.inc taxonomy_breadcrumb/taxonomy_breadcrumb.admin.inc
--- taxonomy_breadcrumb_original/taxonomy_breadcrumb.admin.inc	2010-03-30 21:46:35.000000000 -0400
+++ taxonomy_breadcrumb/taxonomy_breadcrumb.admin.inc	2011-06-23 09:53:00.000000000 -0400
@@ -44,6 +44,20 @@ function taxonomy_breadcrumb_admin_setti
     '#description'    => t("If enabled and if viewing a node, the node's title will be shown as the last item in the breadcrumb trail."),
     '#weight'         => 30,
   );
+  
+  $vocs = taxonomy_get_vocabularies();
+  asort($vocs);
+  foreach($vocs as $voc){
+    $select_choices[$voc->vid] = $voc->name;
+  }
+  $form['settings']['taxonomy_breadcrumb_vocabulary_id'] = array(
+    '#type'           => 'select',
+    '#options'        => $select_choices,
+    '#title'          => t('Default vocabulary to use for breadcrumbs.'),
+    '#default_value'  => variable_get('taxonomy_breadcrumb_vocabulary_id', $vocs[0]->vid),
+    '#description'    => t("Choose which vocabulary will be used to build breadcrumbs. If the node does not have this vocabulary, then the lightest vocabulary will be used instead."),
+    '#weight'         => 31,
+  );
 
   $form['advanced'] = array(
     '#type'           => 'fieldset',
diff -rupN taxonomy_breadcrumb_original/taxonomy_breadcrumb.inc taxonomy_breadcrumb/taxonomy_breadcrumb.inc
--- taxonomy_breadcrumb_original/taxonomy_breadcrumb.inc	2010-03-30 21:46:35.000000000 -0400
+++ taxonomy_breadcrumb/taxonomy_breadcrumb.inc	2011-06-23 09:52:00.000000000 -0400
@@ -35,21 +35,46 @@ function _taxonomy_breadcrumb_term_page(
 }
 
 /**
+ * Return the vid to use for this node or null if none.
+ *
+ * @param $node
+ *   The node object.
+ *
+ * @ return
+ *   The term object to use to build breadcrumbs or null if none.
+ */
+function _taxonomy_breadcrumb_node_get_selected_vid($node) {
+  $default_vid = variable_get('taxonomy_breadcrumb_vocabulary_id', null);
+  if ($default_vid != null) {
+    $terms = taxonomy_node_get_terms($node);
+    foreach($terms as $term) {
+      if ($term->vid == $default_vid) {
+        return $term;
+      }
+    }
+  }
+  else {
+    return _taxonomy_breadcrumb_node_get_lightest_term($node);
+  }
+}
+
+/**
  * Return lightest term for a given node.
  *
  * @param $node
  *   The node object.
  *
  * @ return
- *   The lightest term object associated with the node.
+ *   The lightest term object associated with the node or null if none found.
  */
 function _taxonomy_breadcrumb_node_get_lightest_term($node) {
   $terms = taxonomy_node_get_terms($node);
   if (!empty($terms)) {
     if (count($terms) > 1) {
+      $vocs = taxonomy_get_vocabularies();
       foreach ($terms as $term) {
         // Only consider terms in the lightest vocabulary.
-        if (!isset($vid)) {
+        if (!isset($vid) or $vocs[$vid]->weight > $vocs[$term->vid]->weight) {
           $vid = $term->vid;
         }
         elseif ($term->vid != $vid) continue;
@@ -86,6 +111,7 @@ function _taxonomy_breadcrumb_node_get_l
       return array_pop($terms);
     }
   }
+  return null;
 }
 
 /**
diff -rupN taxonomy_breadcrumb_original/taxonomy_breadcrumb.module taxonomy_breadcrumb/taxonomy_breadcrumb.module
--- taxonomy_breadcrumb_original/taxonomy_breadcrumb.module	2010-03-30 21:46:35.000000000 -0400
+++ taxonomy_breadcrumb/taxonomy_breadcrumb.module	2011-06-23 09:27:00.000000000 -0400
@@ -76,12 +76,14 @@ function taxonomy_breadcrumb_nodeapi(&$n
     if ($in_list == variable_get('taxonomy_breadcrumb_include_nodes', 0) ) {
 
       // Extract lightest term from lightest vocabulary assosciated with node.
-      $term = _taxonomy_breadcrumb_node_get_lightest_term($node);
-      $breadcrumb = _taxonomy_breadcrumb_generate_breadcrumb($term->tid);
-      if (variable_get('taxonomy_breadcrumb_include_node_title', FALSE)) {
-        $breadcrumb[] = check_plain($node->title);
+      $term = _taxonomy_breadcrumb_node_get_selected_vid($node);
+      if ($term != null) {
+        $breadcrumb = _taxonomy_breadcrumb_generate_breadcrumb($term->tid);
+        if (variable_get('taxonomy_breadcrumb_include_node_title', FALSE)) {
+          $breadcrumb[] = check_plain($node->title);
+        }
+        drupal_set_breadcrumb($breadcrumb);
       }
-      drupal_set_breadcrumb($breadcrumb);
     }
   }
 }
