diff -urp ../taxonomySearch/jquery-select.js ./taxonomySearch/jquery-select.js
--- ../taxonomySearch/jquery-select.js	2007-04-06 18:17:25.000000000 +0400
+++ ./taxonomySearch/jquery-select.js	2008-05-15 15:11:52.000000000 +0400
@@ -72,6 +72,7 @@ $.fn.addOption = function()
 			}
 			else
 			{
+        if($(this).find("option[@value="+v+"]").length > 0) return;
 				var option = document.createElement("option");
 				option.value = v;
 				option.text = t;
Only in ./taxonomySearch/: php.js
diff -urp ../taxonomySearch/taxonomySearch.js ./taxonomySearch/taxonomySearch.js
--- ../taxonomySearch/taxonomySearch.js	2007-04-06 18:17:25.000000000 +0400
+++ ./taxonomySearch/taxonomySearch.js	2008-05-15 15:11:53.000000000 +0400
@@ -9,9 +9,19 @@ if (Drupal.jsEnabled) {
       
       $('select.taxonomySearch_tids').change(
         function() {
-          fieldid=this.id;
-          tids=$('.taxonomySearch_tids').filter('[@id*='+fieldid+']').val();
-          $('.taxonomySearch_nids').filter('[@id*='+fieldid+']').removeOption(/./).ajaxAddOption("/taxonomySearch/autocomplete/"+fieldid+"/"+tids);
+           fieldid=this.id;
+           if(this.multiple) {
+             var tids_arr=new Array;
+             for(var i=0;i<this.options.length;i++) 
+               if(this.options[i].selected == true) tids_arr.push(this.options[i].value);
+             if(tids_arr.length>0) tids=tids_arr.join(',');
+           } else tids=$('.taxonomySearch_tids').filter('[@id*='+fieldid+']').val();
+          $('.taxonomySearch_nids').filter('[@id*='+fieldid+'_nids]').find('option[@selected=]').each(
+           function() {
+             $(this).remove();
+           }
+          );
+           $('.taxonomySearch_nids').filter('[@id*='+fieldid+']').ajaxAddOption("/taxonomySearch/autocomplete/"+fieldid+"/"+tids,null,false);
         });
       
     });
diff -urp ../taxonomySearch/taxonomySearch.module ./taxonomySearch/taxonomySearch.module
--- ../taxonomySearch/taxonomySearch.module	2007-04-06 18:17:25.000000000 +0400
+++ ./taxonomySearch/taxonomySearch.module	2008-05-15 15:11:53.000000000 +0400
@@ -136,7 +136,7 @@ function taxonomySearch_widget($op, &$no
         '#description' => $field['widget']['description'],
         '#attributes' => array(
             'class' => "taxonomySearch_nids",
-            'id' => "$fieldname",
+            'id' => $fieldname."_nids",
           ),
       );
       return $form;
@@ -196,14 +196,13 @@ function taxonomySearch_autocomplete($fi
   $fields = content_fields();
   $field = $fields[$field_name];
   $matches = array();
-
+  if(strstr($string,','))$string=split(',',$string);
 
   foreach (_nodereference_potential_references($field, TRUE, '') as $row) {
-    
     $tags=taxonomy_node_get_terms($row->nid);
-    if (isset($tags[$string])) {
-            $matches[$row->nid] = _nodereference_item($field, $row, TRUE);
-//            $matches[$row->node_title .' [nid:'. $row->nid .']'] = _nodereference_item($field, $row, TRUE);
+    if(count($tags))
+      if(is_array($string)?(array_intersect($string,array_keys($tags))):(isset($tags[$string]))) {
+        $matches[$row->nid] = _nodereference_item($field, $row, TRUE);
     }
   }
   print drupal_to_js($matches);
