Index: i18ntaxonomy.module
===================================================================
--- i18ntaxonomy.module	(revision 903)
+++ i18ntaxonomy.module	(working copy)
@@ -652,7 +652,7 @@
           if ($parents = taxonomy_get_parents_all($node->tid)) {
             $parents = array_reverse($parents);
             foreach ($parents as $p) {
-              $breadcrumb[] = l(tt("taxonomy:term:$term->tid:name", $p->name), 'forum/'. $p->tid);
+              $breadcrumb[] = l(tt("taxonomy:term:$p->tid:name", $p->name), 'forum/'. $p->tid);
             }
           }
           drupal_set_breadcrumb($breadcrumb);
@@ -992,13 +992,25 @@
     // Translate the page title.
     $title = !empty($vocabulary->name) ? $vocabulary->name : '';
     $title = check_plain(tt("taxonomy:vocabulary:$vid:name", $title));
-    drupal_set_title($title);
-
+    
     // Translate the breadcrumb.
     $breadcrumb = array();
     $breadcrumb[] = l(t('Home'), NULL);
-    $breadcrumb[] = l(tt("taxonomy:vocabulary:$vid:name", $vocabulary->name), 'forum');
-    drupal_set_breadcrumb($breadcrumb);
+    if ($variables['tid'])
+      $breadcrumb[] = l(tt("taxonomy:vocabulary:$vid:name", $vocabulary->name), 'forum');
+
+    if ($variables['parents']) {
+      $parents = array_reverse($variables['parents']);
+      foreach ($parents as $p) {
+        if ($p->tid != $variables['tid']) {
+          $breadcrumb[] = l(tt("taxonomy:term:$p->tid:name", $p->name), 'forum/'. $p->tid);
+        }
+        else
+          $title = tt("taxonomy:term:$p->tid:name",$p->name);
+      }
+    } 
+    drupal_set_title($title);
+    drupal_set_breadcrumb($breadcrumb);   
   }
 }
 
