Index: gtk/gtktextview.c =================================================================== --- gtk/gtktextview.c (revision 22213) +++ gtk/gtktextview.c (working copy) @@ -2076,8 +2076,7 @@ */ area.width = 0; - if (GTK_WIDGET_REALIZED (text_view)) - gtk_im_context_set_cursor_location (text_view->im_context, &area); + gtk_im_context_set_cursor_location (text_view->im_context, &area); } static gboolean @@ -3840,7 +3839,7 @@ } /* Ensure updating the spot location. */ - gtk_text_view_update_im_spot_location(text_view); + gtk_text_view_update_im_spot_location (text_view); } static void Index: gtk/gtkimmulticontext.c =================================================================== --- gtk/gtkimmulticontext.c (revision 22213) +++ gtk/gtkimmulticontext.c (working copy) @@ -226,7 +226,7 @@ if (!multicontext->slave) { GtkIMContext *slave; - + g_free (multicontext->context_id); if (multicontext->priv->context_id) @@ -258,18 +258,14 @@ GdkWindow *window) { GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context); - GtkIMContext *slave; GdkScreen *screen; GtkSettings *settings; gboolean connected; multicontext->priv->client_window = window; - slave = gtk_im_multicontext_get_slave (multicontext); + gtk_im_multicontext_set_slave (multicontext, NULL, FALSE); - if (slave) - gtk_im_context_set_client_window (slave, window); - if (window == NULL) return; Index: gtk/gtkimmodule.c =================================================================== --- gtk/gtkimmodule.c (revision 22213) +++ gtk/gtkimmodule.c (working copy) @@ -671,9 +671,6 @@ GdkScreen *screen; GtkSettings *settings; - /* assertion to make sure all of the unexpected invocation is really gone. */ - g_return_val_if_fail (client_window != NULL, SIMPLE_ID); - if (!contexts_hash) gtk_im_module_initialize ();