Index: vocabperms.module
===================================================================
--- vocabperms.module	(revision 1598)
+++ vocabperms.module	(working copy)
@@ -150,7 +150,7 @@
 }
 
 function _vocabperms_node_form_remove_field(&$field) {
-  global $user;
+  global $user, $defaults;
   $count = 0;
   foreach ($field as $vid => $elem) {
     if (is_int($vid)) {
@@ -167,7 +167,11 @@
            * are retained.  Use a default value if available.  Otherwise, use
            * the first option (which would be selected by default).
            */
-          $value = isset($elem['#default_value']) ? $elem['#default_value'] : key($elem['#options']);
+          
+          // add support for Taxonomy Super Select
+          if (isset($elem['#default_value'])) $value = isset($elem['#default_value']) ? $elem['#default_value'] : key($elem['#options']);   // standard
+          else $value = _vocabperms_tss_find_defaults($elem);                                                                               // TSS
+                    
           $field[$vid] = array(
             '#type' => 'value',
             '#value' => $value,
@@ -258,3 +262,14 @@
   }
   return $cache[$vid];
 }
+
+// recursively called routine to go through taxionomy super select structure and look for default values
+function _vocabperms_tss_find_defaults ($field) {
+  global $defaults;
+  foreach ($field as $key => $elem) {
+    if (is_int($key)) _vocabperms_tss_find_defaults ($elem);
+    if ($key == "#default_value" && $elem) $defaults[] = $elem;
+  }
+  return $defaults;
+} 
+  
