=== 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 );
 		}

