diff --git a/gladeui/glade-base-editor.c b/gladeui/glade-base-editor.c
index 40a2b90..7343952 100644
--- a/gladeui/glade-base-editor.c
+++ b/gladeui/glade-base-editor.c
@@ -110,6 +110,8 @@ enum {
 static guint glade_base_editor_signals [LAST_SIGNAL] = { 0 };
 static GtkVBoxClass *parent_class = NULL;
 
+static gboolean updating_widget_name;
+
 static void glade_base_editor_set_container   (GladeBaseEditor *editor,
 					       GObject *container);
 static void glade_base_editor_block_callbacks (GladeBaseEditor *editor,
@@ -319,6 +321,7 @@ glade_base_editor_get_child_selected (GladeBaseEditor *e, GtkTreeIter *iter)
 static void
 glade_base_editor_name_activate (GtkEntry *entry, GladeWidget *gchild)
 {
+	updating_widget_name = TRUE;
 	const gchar *text = gtk_entry_get_text (GTK_ENTRY (entry));
 	
 	if (strcmp (glade_widget_get_name (gchild), text))
@@ -972,6 +975,12 @@ glade_base_editor_project_widget_name_changed (GladeProject *project,
 	GladeWidget *selected_child;
 	GtkTreeIter iter;
 
+	if (updating_widget_name)
+	{
+		updating_widget_name = FALSE;
+		return;
+	}
+
 	if (glade_base_editor_get_child_selected (editor, &iter))
 	{
 		gtk_tree_model_get (editor->priv->model, &iter,
@@ -1643,6 +1652,9 @@ glade_base_editor_init (GladeBaseEditor *editor)
 	
 	e = editor->priv = g_new0(GladeBaseEditorPrivate, 1);
 
+	/* Suppose that we do not start changing the name of a widget */
+	updating_widget_name = FALSE;
+
 	e->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
 	
 	/* Paned */
@@ -1977,6 +1989,8 @@ glade_base_editor_add_default_properties (GladeBaseEditor *editor,
 	entry = gtk_entry_new ();
 	gtk_entry_set_text (GTK_ENTRY (entry), glade_widget_get_name (gchild));
 	g_signal_connect (entry, "activate", G_CALLBACK (glade_base_editor_name_activate), gchild);
+	//fixing
+	g_signal_connect (entry, "changed", G_CALLBACK (glade_base_editor_name_activate), gchild);
 	g_signal_connect (entry, "focus-out-event", G_CALLBACK (glade_base_editor_name_focus_out), gchild);
 	glade_base_editor_table_attach (editor, label, entry);
 

