Index: src/editor/spell.c =================================================================== --- src/editor/spell.c (revision 94bd4b1f78901cd83406f3daa9a0d0f8f2152321) +++ src/editor/spell.c (revision a8429411758003fab3b9f27e6bccad6b6b5c2d3c) @@ -72,7 +72,5 @@ static const char *(*mc_aspell_config_retrieve) (struct AspellConfig * ths, const char *key); static void (*mc_delete_aspell_speller) (struct AspellSpeller * ths); -/* - static void (*mc_delete_aspell_config) (struct AspellConfig * ths); - */ +static void (*mc_delete_aspell_config) (struct AspellConfig * ths); static void (*mc_delete_aspell_can_have_error) (struct AspellCanHaveError * ths); static const char *(*mc_aspell_error_message) (const struct AspellCanHaveError * ths); @@ -229,5 +227,5 @@ goto error_ret; - if (!g_module_symbol (spell_module, "delete_aspell_config", (void *) &mc_delete_aspell_speller)) + if (!g_module_symbol (spell_module, "delete_aspell_config", (void *) &mc_delete_aspell_config)) goto error_ret; @@ -312,5 +310,5 @@ edit_error_dialog (_("Error"), mc_aspell_error_message (error)); mc_delete_aspell_can_have_error (error); - g_free (global_speller); + aspell_clean (); } } @@ -327,5 +325,10 @@ return; - mc_delete_aspell_speller (global_speller->speller); + if (global_speller->speller != NULL) + mc_delete_aspell_speller (global_speller->speller); + + if (global_speller->config != NULL) + mc_delete_aspell_config (global_speller->config); + g_free (global_speller); global_speller = NULL;