Index: src/edframe.cpp =================================================================== --- src/edframe.cpp (revision 1450) +++ src/edframe.cpp (working copy) @@ -829,14 +829,26 @@ wxASSERT_MSG( textview, _T("wxTextCtrl is supposed to use GtkTextView") ); GtkSpell *spell = gtkspell_get_from_text_view(textview); - if (spell) - gtkspell_detach(spell); + printf("init spellchecker for %s\n", (const char*)lang.ToAscii()); if (enable) { GError *err = NULL; - if (!gtkspell_new_attach(textview, lang.ToAscii(), &err)) + bool ok; + + if (spell) { + printf("gtkspell_set_language\n"); + ok = gtkspell_set_language(spell, lang.ToAscii(), &err); + } + else + { + printf("gtkspell_new_attach\n"); + ok = gtkspell_new_attach(textview, lang.ToAscii(), &err) != NULL; + } + + if (!ok) + { #if 0 // FIXME: report the failure in some less intrusive way than the // code that was used here; say for which language, too @@ -846,6 +858,14 @@ g_error_free(err); } } + else + { + if (spell) + { + printf("gtkspell_detach\n"); + gtkspell_detach(spell); + } + } } #endif // __WXGTK__