diff -ur evolution-data-server-2.28.3.orig/libedataserverui/e-name-selector-entry.c evolution-data-server-2.28.3/libedataserverui/e-name-selector-entry.c
--- evolution-data-server-2.28.3.orig/libedataserverui/e-name-selector-entry.c	2009-12-14 01:02:38.000000000 -0500
+++ evolution-data-server-2.28.3/libedataserverui/e-name-selector-entry.c	2010-04-09 12:51:07.277883369 -0400
@@ -1503,6 +1503,9 @@
 
 		str_context = gtk_editable_get_chars (GTK_EDITABLE (name_selector_entry), range_end, range_end+1);
 
+		g_signal_handlers_block_by_func (name_selector_entry, user_insert_text, name_selector_entry);
+		g_signal_handlers_block_by_func (name_selector_entry, user_delete_text, name_selector_entry);
+
 		if (str_context[0] != ',') {
 			/* At the end*/
 			gtk_editable_insert_text (GTK_EDITABLE (name_selector_entry), ", ", -1, &range_end);
@@ -1512,14 +1515,15 @@
 
                         /* Doing this we can make sure that It wont ask for completion again. */
 			gtk_editable_insert_text (GTK_EDITABLE (name_selector_entry), ", ", -1, &newpos);
-			g_signal_handlers_block_by_func (name_selector_entry, user_delete_text, name_selector_entry);
 			gtk_editable_delete_text (GTK_EDITABLE (name_selector_entry), newpos-2, newpos);
-			g_signal_handlers_unblock_by_func (name_selector_entry, user_delete_text, name_selector_entry);
 
 			/* Move it close to next destination*/
 			range_end = range_end+2;
-
 		}
+
+		g_signal_handlers_unblock_by_func (name_selector_entry, user_delete_text, name_selector_entry);
+		g_signal_handlers_unblock_by_func (name_selector_entry, user_insert_text, name_selector_entry);
+
 	}
 
 	gtk_editable_set_position (GTK_EDITABLE (name_selector_entry), range_end);
Only in evolution-data-server-2.28.3/libedataserverui: e-name-selector-entry.c~
