--- taxonomy_menu.module.OLD	2009-11-06 03:09:38.000000000 +1100
+++ taxonomy_menu.module	2009-11-20 15:07:07.218253549 +1100
@@ -784,6 +784,22 @@ function _taxonomy_menu_item($item) {
     }
   }
 
+  //if vocabulary item has no terms, hide it
+  if ($item['tid'] == 0) {
+    $show = FALSE;
+    $terms = taxonomy_get_tree($item['vid']);
+    foreach ($terms as $term) {
+      if (taxonomy_term_count_nodes($term->tid) > 0) {
+        $show = TRUE;
+        exit;
+      }
+    }
+
+    if (!$show) {
+      $item['remove'] = TRUE;
+    }
+  }
+
   return $item;
 }
 
@@ -971,4 +987,4 @@ function taxonomy_menu_translated_menu_l
       }
     }
   }
-}
\ No newline at end of file
+}
