--- hs_taxonomy.module.ORIG	2010-02-04 23:27:55.834009026 -0500
+++ hs_taxonomy.module	2010-02-04 23:31:20.962471082 -0500
@@ -342,6 +342,15 @@
     }
   }
 
+  // If Term Permissions module is installed, honor its settings
+  if (function_exists('term_permissions_allowed')) {
+    global $user;
+    foreach ($terms as $key => $term) {
+	if (!term_permissions_allowed($term->tid, $user) ) {
+        unset($terms[$key]);
+      }
+    }
+  }
   return _hs_taxonomy_hierarchical_select_terms_to_options($terms);
 }
 
@@ -358,6 +367,15 @@
   // Unset the term that's being excluded, if it is among the children.
   unset($terms[$params['exclude_tid']]);
 
+  // If Term Permissions module is installed, honor its settings
+  if (function_exists('term_permissions_allowed')) {
+    global $user;
+    foreach ($terms as $key => $term) {
+        if (!term_permissions_allowed($term->tid, $user) ) {
+        unset($terms[$key]);
+      }
+    }
+  }
   return _hs_taxonomy_hierarchical_select_terms_to_options($terms);
 }
 
