Index: tac_lite.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/tac_lite/tac_lite.module,v
retrieving revision 1.6.2.3
diff -u -F^f -r1.6.2.3 tac_lite.module
--- tac_lite.module	12 Dec 2007 13:42:00 -0000	1.6.2.3
+++ tac_lite.module	22 May 2008 20:17:09 -0000
@@ -250,35 +250,28 @@ function tac_lite_node_access_records($n
 function _tac_lite_get_terms(&$node) {
   $tids = array();
 
-  // emulating code from taxonomy_node_save here.
-  // note that free tagging vocabs not currently supported
   if (count($node->taxonomy)) {
-	foreach ($node->taxonomy as $term) {
-	  if (is_array($term)) {
-		foreach ($term as $tid) {
-		  if (is_numeric($tid)) {
-			$tids[$tid] = $tid;
-		  }
-		  else {
-			// non-numeric means free-tagging vocabulary.
-			// we do not support.  Do nothing.
-		  }
-		}
-	  }
-      else if (is_object($term)) {
-        // in drupal 5 term is an object.  Is this right?
-        $tids[$term->tid] = $term->tid;
-      }
-	  else if (is_numeric($term)) {
-		// $term is a tid.
-		$tids[$term] = $term;
-	  }
-      else if ($term) {
-        drupal_set_message(t('Unexpected term value "%term" in tac_lite.',
-                             array('%term' => $term)),
-                           'error');
+    foreach ($node->taxonomy as $key => $term) {
+      // if the key is "tags", it's a freetagging vocabulary, which isn't supported
+      if ($key != 'tags') {
+        if (is_array($term)) {
+          // multi-select vocab, i.e. an array of tids
+          foreach ($term as $tid) {
+            $tids[$tid] = $tid;
+          }
+        }
+        else if (is_numeric($term)) {
+          // single-select vocab
+          $tids[$term] = $term;
+        }
+        else if ($term) {
+          drupal_set_message(
+            t('Unexpected term value "%term" in tac_lite.', array('%term' => $term)),
+            'error'
+          );
+        }
       }
-	}
+    }
   }
 
   return $tids;
