Index: ../modules/community_tags/community_tags.module
===================================================================
--- ../modules/community_tags/community_tags.module	(revision 7)
+++ ../modules/community_tags/community_tags.module	(working copy)
@@ -445,6 +445,7 @@
  * Callback for the JS tagger.
  */
 function community_tags_from_js($nid) {
+  
   global $user;
   if (!is_numeric($nid) || !($node = node_load($nid))) {
     return;
@@ -452,11 +453,19 @@
 
   $tags = is_array($_POST['tags']) ? $_POST['tags'] : array();
 
+  $added_tags = taxonomy_explode_tags($_POST['add']);
+  
   // Merge in new tag and save
-  $tags = array_unique(array_merge($tags, taxonomy_explode_tags($_POST['add'])));
+  $tags = array_unique(array_merge($tags, $added_tags));
   $vid = array_shift(community_tags_vids_for_node($node));
   community_tags_taxonomy_node_save($node->nid, array('tags' => array($vid => $tags)), FALSE, $user->uid);
 
+  // Tell other modules we (un)tagged something
+  if (empty($added_tags))
+    module_invoke_all('community_tags', 'delete', $node, $tags);
+  else
+    module_invoke_all('community_tags', 'add', $node, $added_tags);
+
   // Fetch updated list
   $tags = community_tags_flatten(community_tags_get_user_node_tags($user->uid, $node->nid));
 
@@ -587,7 +596,6 @@
       db_query('DELETE FROM {term_node} WHERE nid = %d AND tid = %d', $tag->nid, $tag->tid);
     }
   }
-
 }
 
 
