diff -r 75a1ebeb269a -r 8cf22d7f1c83 libpurple/protocols/facebook/facebook.c --- a/libpurple/protocols/facebook/facebook.c Fri Aug 07 16:24:34 2015 -0400 +++ b/libpurple/protocols/facebook/facebook.c Fri Aug 07 18:35:41 2015 -0400 @@ -369,6 +369,11 @@ PurpleRoomlistRoom *room; list = fb_data_get_roomlist(fata); + + if (G_UNLIKELY(list == NULL)) { + return; + } + gstr = g_string_new(NULL); for (l = thrds; l != NULL; l = l->next) { @@ -394,6 +399,7 @@ } purple_roomlist_set_in_progress(list, FALSE); + fb_data_set_roomlist(fata, NULL); g_string_free(gstr, TRUE); } @@ -852,6 +858,9 @@ PurpleRoomlistField *fld; fata = purple_connection_get_protocol_data(gc); + list = fb_data_get_roomlist(fata); + g_return_val_if_fail(list == NULL, NULL); + api = fb_data_get_api(fata); acct = purple_connection_get_account(gc); list = purple_roomlist_new(acct); @@ -868,6 +877,7 @@ flds = g_list_reverse(flds); purple_roomlist_set_fields(list, flds); + purple_roomlist_set_in_progress(list, TRUE); fb_api_thread_list(api); return list; }