=== modified file 'protocols/bee_chat.c' --- protocols/bee_chat.c 2010-09-05 23:30:40 +0000 +++ protocols/bee_chat.c 2014-04-27 11:59:17 +0000 @@ -99,8 +99,14 @@ if( bu && bee->ui->chat_msg ) bee->ui->chat_msg( bee, c, bu, msg, sent_at ); - else - imcb_chat_log( c, "Message from unknown participant %s: %s", who, msg ); + else { + /* The user is not present in the room. Let's add him for + * this one message, then remove him. + */ + bu = bee_user_new( bee, c->ic, who, BEE_USER_LOCAL ); + bee->ui->chat_msg( bee, c, bu, msg, sent_at ); + bee->ui->chat_remove_user( bee, c, bu ); + } } void imcb_chat_log( struct groupchat *c, char *format, ... ) === modified file 'protocols/jabber/conference.c' --- protocols/jabber/conference.c 2013-02-21 19:15:59 +0000 +++ protocols/jabber/conference.c 2014-04-27 12:00:47 +0000 @@ -409,7 +409,7 @@ /* This can happen too, at least when receiving a backlog when just joining a channel. */ if( chat ) - imcb_chat_log( chat, "Message from unknown participant %s: %s", nick, body->text ); + imcb_chat_msg( chat, nick, body->text, 0, jabber_get_timestamp( node ) ); else imcb_log( ic, "Groupchat message from unknown JID %s: %s", s, body->text ); }