diff -r 39b8f418563c -r 56c954d1a430 libpurple/protocols/facebook/api.c --- a/libpurple/protocols/facebook/api.c Mon Aug 24 10:37:25 2015 -0400 +++ b/libpurple/protocols/facebook/api.c Mon Aug 24 19:29:57 2015 -0400 @@ -2943,6 +2943,8 @@ fb_api_thread_dup(const FbApiThread *thrd, gboolean deep) { FbApiThread *ret; + FbApiUser *user; + GSList *l; if (thrd == NULL) { return g_new0(FbApiThread, 1); @@ -2951,10 +2953,15 @@ ret = g_memdup(thrd, sizeof *thrd); if (deep) { + ret->users = NULL; + + for (l = thrd->users; l != NULL; l = l->next) { + user = fb_api_user_dup(l->data, TRUE); + ret->users = g_slist_prepend(ret->users, user); + } + ret->topic = g_strdup(thrd->topic); - ret->users = g_slist_copy_deep(thrd->users, - (GCopyFunc) fb_api_user_dup, - GINT_TO_POINTER(deep)); + ret->users = g_slist_reverse(ret->users); } return ret;