diff -r 0aca2e93ae36 -r a1de7592cbeb libpurple/media/media.c --- a/libpurple/media/media.c Wed Oct 28 18:07:27 2009 +0000 +++ b/libpurple/media/media.c Wed Oct 28 18:16:59 2009 +0000 @@ -707,11 +707,19 @@ for (; participants; participants = g_list_delete_link(participants, participants)) { gchar *participant = participants->data; - + GList *link = g_list_find_custom(media->priv->participants, + participant, (GCompareFunc)strcmp); + g_signal_emit(media, purple_media_signals[STATE_CHANGED], 0, PURPLE_MEDIA_STATE_END, NULL, participant); + if (link != NULL) { + g_free(link->data); + media->priv->participants = g_list_delete_link( + media->priv->participants, link); + } + g_free(participant); }