diff -ru gaim-0.82.1.orig/src/protocols/oscar/oscar.c gaim-0.82.1/src/protocols/oscar/oscar.c --- gaim-0.82.1.orig/src/protocols/oscar/oscar.c 2004-08-26 03:29:00.000000000 +0200 +++ gaim-0.82.1/src/protocols/oscar/oscar.c 2004-09-13 02:24:47.232718752 +0200 @@ -449,7 +449,12 @@ ret = g_strndup(data, datalen); } else { gaim_debug_warning("oscar", "Received invalid UTF-8.\n"); - ret = g_strdup(_("(There was an error receiving this message)")); + charsetstr = gaim_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING); + ret = g_convert(data, datalen, "UTF-8", charsetstr, NULL, NULL, NULL); + if (ret == NULL) { + gaim_debug_warning("oscar", "Received also invalid %s.\n", charsetstr); + ret = g_strdup(_("(There was an error receiving this message)")); + } } }