--- orig/gtk+-1.3.13/gtk/gtkentry.c	Tue Jan 29 00:24:45 2002
+++ gtk+-1.3.13/gtk/gtkentry.c	Thu Feb 21 09:59:30 2002
@@ -1715,8 +1715,6 @@ gtk_entry_insert_text (GtkEditable *edit
   strncpy (text, new_text, new_text_length);
   
   g_signal_emit_by_name (editable, "insert_text", text, new_text_length, position);
-  g_signal_emit_by_name (editable, "changed");
-  g_object_notify (G_OBJECT (editable), "text");
 
   if (new_text_length > 63)
     g_free (text);
@@ -1741,8 +1739,6 @@ gtk_entry_delete_text (GtkEditable *edit
   g_object_ref (G_OBJECT (editable));
 
   g_signal_emit_by_name (editable, "delete_text", start_pos, end_pos);
-  g_signal_emit_by_name (editable, "changed");
-  g_object_notify (G_OBJECT (editable), "text");
 
   g_object_unref (G_OBJECT (editable));
 }
@@ -1946,6 +1942,9 @@ gtk_entry_real_insert_text (GtkEditable 
   *position += n_chars;
 
   gtk_entry_recompute (entry);
+
+  g_signal_emit_by_name (editable, "changed");
+  g_object_notify (G_OBJECT (editable), "text");
 }
 
 static void
@@ -1974,13 +1973,15 @@ gtk_entry_real_delete_text (GtkEditable 
 
       if (entry->selection_bound > start_pos)
 	entry->selection_bound -= MIN (entry->selection_bound, end_pos) - start_pos;
+      /* We might have deleted the selection
+       */
+      gtk_entry_update_primary_selection (entry);
+      
+      gtk_entry_recompute (entry);
+      
+      g_signal_emit_by_name (editable, "changed");
+      g_object_notify (G_OBJECT (editable), "text");
     }
-
-  /* We might have deleted the selection
-   */
-  gtk_entry_update_primary_selection (entry);
-
-  gtk_entry_recompute (entry);
 }
 
 /* Compute the X position for an offset that corresponds to the "more important
