g_strdup the constant string, we need to be able to free it later. Index: irssi/src/fe-common/core/fe-recode.c =================================================================== --- irssi/src/fe-common/core/fe-recode.c (Revision 4828) +++ irssi/src/fe-common/core/fe-recode.c (working copy) @@ -160,7 +160,7 @@ if (!is_valid_charset(recode_fallback)) { signal_emit("error command", 2, GINT_TO_POINTER(CMDERR_INVALID_CHARSET), recode_fallback); g_free(recode_fallback); - recode_fallback = is_valid_charset(old_recode_fallback) ? g_strdup(old_recode_fallback) : "ISO8859-1"; + recode_fallback = is_valid_charset(old_recode_fallback) ? g_strdup(old_recode_fallback) : g_strdup("ISO8859-1"); settings_set_str("recode_fallback", recode_fallback); }