libera.chat doesn't include a colon in the JOIN response (optional in the spec?) which makes the client drop the first character off the channel name it stores in memory.
if(!strcmp(im->command, "JOIN"))
{
if (im->param[0] == ':') /* this is a horrible hack, de we need to check for optional : everywhere? */
strlcpy(chan, (im->param)+1, CHANSZ);
else
strlcpy(chan, im->param, CHANSZ);
setStatusLine(nick, chan);
return;
}