diff --git a/taxonomy_block.module b/taxonomy_block.module
index 9460248..eb03e36 100644
--- a/taxonomy_block.module
+++ b/taxonomy_block.module
@@ -60,6 +60,7 @@ function taxonomy_block_block($op = 'list', $delta = 0) {
   {
     $vid        = variable_get('taxonomy_block_settings_vid',1);
     $node_count = variable_get('taxonomy_block_settings_node_count',1);
+    $hide_terms = variable_get('taxonomy_block_settings_hide_terms',1);
     $num_term   = variable_get('taxonomy_block_settings_max_term',0);
     
     $order_by   = variable_get('taxonomy_block_settings_order_by', 0)==0 ? 'name' : 'weight';
@@ -87,6 +88,9 @@ function taxonomy_block_block($op = 'list', $delta = 0) {
       $term_parents = db_query($sql, $vid, $order_by, $order_type, $num_term );
 
       $output .= '<ul class="menu">';
+      if (module_exists("i18n")) {
+        $current_lang = i18n_get_lang();
+      }
       while ($term_parent = db_fetch_object($term_parents)) {
         $tid_parent = $term_parent->tid;
         $name_parent= $term_parent->name;
@@ -94,22 +98,47 @@ function taxonomy_block_block($op = 'list', $delta = 0) {
         $output .= '<li>';
         $term_parent = taxonomy_get_term($tid_parent);
         
-        if (module_exists("i18n")) {
-          $output .= l(tt("taxonomy:term:$tid_parent:name", $name_parent), taxonomy_term_path($term_parent));
-        } else {
-          //$output .= l(t($name_parent), "taxonomy/term/$tid_parent");  
-          $output .= l(t($name_parent), taxonomy_term_path($term_parent));  
-        }
         if ($node_count) {
-          $sql_count_parents = " SELECT COUNT(tn.nid) FROM {term_node} tn "
-                              ." INNER JOIN {node} n ON n.nid = tn.nid "
-                              ." WHERE tid = %d AND n.status = 1";
+          if (module_exists("i18n")) {
+            $sql_count_parents = " SELECT COUNT(tn.nid) FROM {term_node} tn "
+                                ." INNER JOIN {node} n ON n.nid = tn.nid "
+                                ." WHERE tid = %d AND n.language='%s' AND n.status = 1";
                               
-          $total_parent = db_result(db_query($sql_count_parents, $tid_parent));
-          $output .= " ($total_parent)"; 
-        }
-        
-        
+            $total_parent = db_result(db_query($sql_count_parents, $tid_parent, $current_lang));
+	      } else {
+            $sql_count_parents = " SELECT COUNT(tn.nid) FROM {term_node} tn "
+                                ." INNER JOIN {node} n ON n.nid = tn.nid "
+                                ." WHERE tid = %d AND n.status = 1";
+                              
+            $total_parent = db_result(db_query($sql_count_parents, $tid_parent));	 
+	      }
+		      if ($hide_terms) { // Display the term only if the node count is > 0
+	          if ($total_parent > 0) {
+	            if (module_exists("i18n")) {
+	              $output .= l(tt("taxonomy:term:$tid_parent:name", $name_parent), taxonomy_term_path($term_parent));
+	              $output .= " ($total_parent)"; 
+	            } else {
+	              $output .= l(t($name_parent), taxonomy_term_path($term_parent));  
+	              $output .= " ($total_parent)"; 
+	            }  
+			      }
+		      } else { // If not Hide Terms
+            if (module_exists("i18n")) {
+              $output .= l(tt("taxonomy:term:$tid_parent:name", $name_parent), taxonomy_term_path($term_parent));
+              $output .= " ($total_parent)"; 
+            } else {
+              $output .= l(t($name_parent), taxonomy_term_path($term_parent));  
+              $output .= " ($total_parent)"; 
+            }					
+					}
+        } else { // If not Node Count, display normal term name
+	        if (module_exists("i18n")) {
+	          $output .= l(tt("taxonomy:term:$tid_parent:name", $name_parent), taxonomy_term_path($term_parent));
+	        } else {
+	          $output .= l(t($name_parent), taxonomy_term_path($term_parent));  
+	        }
+				}
+
         $sql_count_childs = " SELECT count(td.tid) from {term_data} td "
                            ." INNER JOIN {term_hierarchy} th ON th.tid=td.tid "
                            ." INNER JOIN {term_node} tn ON tn.tid= td.tid"
diff --git a/taxonomy_block.settings.inc b/taxonomy_block.settings.inc
index 3b68eb5..ff203a2 100644
--- a/taxonomy_block.settings.inc
+++ b/taxonomy_block.settings.inc
@@ -48,6 +48,13 @@ function taxonomy_block_admin_settings() {
     '#title' => t('Show node count'),
     '#default_value' => variable_get('taxonomy_block_settings_node_count', 1)
   );    
+
+  $form['taxonomy_block_settings']['taxonomy_block_settings_hide_terms'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Hide terms not in use'),
+    '#default_value' => variable_get('taxonomy_block_settings_hide_terms', 1),
+    '#description' => t("This works only when <em>\"Show node count\"</em> option is selected.")
+  );    
   
   $form['taxonomy_block_settings']['taxonomy_block_settings_order_by'] = array(
     '#type' => 'select',
