diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c
index 8cb29da..b9b0515 100644
--- a/libnautilus-private/nautilus-icon-container.c
+++ b/libnautilus-private/nautilus-icon-container.c
@@ -8240,12 +8240,17 @@ nautilus_icon_container_start_renaming_selected_item (NautilusIconContainer *con
 	} else {
 		eel_filename_get_rename_region (editable_text, &start_offset, &end_offset);
 	}
+
+	gtk_widget_show (details->rename_widget);
+	gtk_widget_grab_focus (details->rename_widget);
+
+	/* eel_editable_label_select_region must be called _after_
+	 * gtk_widget_grab, because the latter has the habit of calling
+	 * eel_editable_label_state_changed, ultimately resetting the selection.
+	 */
 	eel_editable_label_select_region (EEL_EDITABLE_LABEL (details->rename_widget),
 					  start_offset,
 					  end_offset);
-	gtk_widget_show (details->rename_widget);
-	
-	gtk_widget_grab_focus (details->rename_widget);
 	
 	g_signal_emit (container,
 		       signals[RENAMING_ICON], 0,
