--- a/libpurple/protocols/jabber/roster.c Wed May 07 13:21:45 2014 +0200 +++ b/libpurple/protocols/jabber/roster.c Wed May 07 15:54:48 2014 +0200 @@ -27,6 +27,7 @@ #include "buddy.h" #include "chat.h" +#include "facebook_roster.h" #include "google/google.h" #include "google/google_roster.h" #include "presence.h" @@ -215,11 +216,18 @@ js->currently_parsing_roster_push = TRUE; + if (js->server_caps & JABBER_CAP_FACEBOOK) + jabber_facebook_roster_cleanup(js, query); + for(item = purple_xmlnode_get_child(query, "item"); item; item = purple_xmlnode_get_next_twin(item)) { const char *jid, *name, *subscription, *ask; JabberBuddy *jb; + if (js->server_caps & JABBER_CAP_FACEBOOK) + if (!jabber_facebook_roster_incoming(js, item)) + continue; + subscription = purple_xmlnode_get_attrib(item, "subscription"); jid = purple_xmlnode_get_attrib(item, "jid"); name = purple_xmlnode_get_attrib(item, "name");