--- a/libpurple/protocols/irc/msgs.c Thu Apr 21 20:19:21 2022 -0500 +++ b/libpurple/protocols/irc/msgs.c Thu Apr 21 20:20:12 2022 -0500 @@ -1454,10 +1454,20 @@ { struct irc_conn *irc = ctx; PurpleConnection *gc = purple_account_get_connection(irc->account); + const char *saslname = + purple_account_get_string(irc->account, "saslname", NULL); + + if(saslname == NULL || *saslname == '\0') { + saslname = purple_account_get_string(irc->account, "realname", ""); + } + + if(saslname == NULL || *saslname == '\0') { + saslname = purple_connection_get_display_name(gc); + } switch(id) { case SASL_CB_AUTHNAME: - *res = purple_connection_get_display_name(gc); + *res = saslname; break; case SASL_CB_USER: *res = "";