--- tac_lite.module copy	2006-05-03 13:15:19.000000000 -0400
+++ tac_lite.module	2006-08-04 09:59:51.000000000 -0400
@@ -269,24 +269,29 @@ 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 {
-		// $term is a tid
-		$tids[$term] = $term;
-	  }
-	}
+  if (!isset($terms['tags'])) {    // check for free tagging vocabularies
+    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)) {
+        $tids[$term->tid] = $term->tid;
+      }
+      else {
+      // $term is a tid
+      $tids[$term] = $term;
+      }
+    }
+    }
   }
 
   return $tids;
