diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index c4aeb66..a7d505e 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -6704,6 +6704,9 @@ gtk_entry_set_buffer (GtkEntry       *entry,
   g_object_notify (obj, "invisible-char");
   g_object_notify (obj, "invisible-char-set");
   g_object_thaw_notify (obj);
+
+  gtk_editable_set_position (GTK_EDITABLE (entry), 0);
+  gtk_entry_recompute (entry);
 }
 
 /**
