diff --git a/src/chat/chat-room/server-group-chat-room.cpp b/src/chat/chat-room/server-group-chat-room.cpp
index 7e5f6b9b6ee4e395b1f630d53eda9f24e01795ba..187af9fb1bed0b702ca30098afbc4f3728b5f24e 100644
--- a/src/chat/chat-room/server-group-chat-room.cpp
+++ b/src/chat/chat-room/server-group-chat-room.cpp
@@ -1165,7 +1165,7 @@ void ServerGroupChatRoomPrivate::queueMessage(const shared_ptr<Message> &msg) {
 	for (const auto &participant : q->getParticipants()) {
 		for (const auto &device : participant->getDevices()) {
 			// Queue the message for all devices except the one that sent it
-			if (*msg->fromAddr != *device->getAddress()) {
+			if (!msg->fromAddr->weakEqual(*device->getAddress())) {
 				queueMessage(msg, device->getAddress());
 			}
 		}
diff --git a/tester/local_chat_tester.cpp b/tester/local_chat_tester.cpp
index 7c6b3049b92e0b6110467682cca5c27d8754b240..e90bac043560edd078a4f1f4e113aaa5e72ed9e8 100644
--- a/tester/local_chat_tester.cpp
+++ b/tester/local_chat_tester.cpp
@@ -195,6 +195,12 @@ static void group_chat_room_server_deletion(void) {
 			return linphone_chat_room_get_unread_messages_count(pauline2Cr) == 1;
 		}));
 
+		BC_ASSERT_FALSE(wait_for_list(coresList, &marie.getStats().number_of_LinphoneMessageReceived,
+		                             initialMarieStats.number_of_LinphoneMessageReceived + 1, 3000));
+
+		BC_ASSERT_FALSE(wait_for_list(coresList, &marie.getStats().number_of_LinphoneAggregatedMessagesReceived,
+		                             initialMarieStats.number_of_LinphoneAggregatedMessagesReceived + 1, 3000));
+
 		for (auto chatRoom : focus.getCore().getChatRooms()) {
 			for (auto participant : chatRoom->getParticipants()) {
 				//  force deletion by removing devices