gobjectification: f98d3b52: Remove blist-node types

aluink at soc.pidgin.im aluink at soc.pidgin.im
Sat Jun 27 00:20:37 EDT 2009


-----------------------------------------------------------------
Revision: f98d3b52d50a85706665b11d5597b06afa70c5d4
Ancestor: 7a28b3a3c7ea1462a4e9857e5b393786a5b366af
Author: aluink at soc.pidgin.im
Date: 2009-06-27T04:16:09
Branch: im.pidgin.gobjectification
URL: http://d.pidgin.im/viewmtn/revision/info/f98d3b52d50a85706665b11d5597b06afa70c5d4

Modified files:
        finch/gntblist.c finch/gntlog.c finch/gntpounce.c
        finch/gntrequest.c finch/plugins/grouping.c
        libpurple/account.c libpurple/blist-node.c libpurple/blist.c
        libpurple/buddy.c libpurple/buddyicon.c libpurple/chat.c
        libpurple/contact.c libpurple/group.c libpurple/log.c
        libpurple/plugins/autoaccept.c
        libpurple/plugins/signals-test.c
        libpurple/protocols/bonjour/bonjour.c
        libpurple/protocols/gg/gg.c
        libpurple/protocols/jabber/adhoccommands.c
        libpurple/protocols/jabber/buddy.c
        libpurple/protocols/jabber/jabber.c
        libpurple/protocols/msn/msn.c
        libpurple/protocols/myspace/zap.c
        libpurple/protocols/novell/novell.c
        libpurple/protocols/oscar/oscar.c
        libpurple/protocols/qq/group_internal.c
        libpurple/protocols/qq/qq.c libpurple/protocols/silc/buddy.c
        libpurple/protocols/silc/chat.c
        libpurple/protocols/silc/silc.c
        libpurple/protocols/yahoo/yahoo.c
        libpurple/protocols/zephyr/zephyr.c pidgin/gtkblist.c
        pidgin/gtkconv.c pidgin/gtkdialogs.c pidgin/gtklog.c
        pidgin/gtkpounce.c pidgin/gtkutils.c
        pidgin/plugins/ticker/ticker.c

ChangeLog: 

Remove blist-node types

-------------- next part --------------
============================================================
--- finch/gntblist.c	1774d8bf4e33e26cbe8e36326552fa05cc99624c
+++ finch/gntblist.c	abdb101468d14f92b8de6779f086f0ba00f2a418
@@ -166,7 +166,7 @@ static gboolean default_can_add_node(Pur
 {
 	gboolean offline = purple_prefs_get_bool(PREF_ROOT "/showoffline");
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_BUDDY(node)) {
 		PurpleBuddy *buddy = (PurpleBuddy*)node;
 		FinchBlistNode *fnode = FINCH_GET_DATA(node);
 		if (!purple_buddy_get_contact(buddy))
@@ -181,18 +181,18 @@ static gboolean default_can_add_node(Pur
 			return TRUE;  /* Show if the buddy just signed off */
 		if (purple_blist_node_get_bool(node, "show_offline"))
 			return TRUE;
-	} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	} else if (PURPLE_IS_CONTACT(node)) {
 		PurpleBlistNode *nd;
 		for (nd = purple_blist_node_get_first_child(node);
 				nd; nd = purple_blist_node_get_sibling_next(nd)) {
 			if (default_can_add_node(nd))
 				return TRUE;
 		}
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		PurpleChat *chat = (PurpleChat*)node;
 		if (purple_account_is_connected(purple_chat_get_account(chat)))
 			return TRUE;  /* Show whenever the account is online */
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		PurpleBlistNode *nd;
 		gboolean empty = purple_prefs_get_bool(PREF_ROOT "/emptygroups");
 		if (empty)
@@ -214,14 +214,8 @@ static gpointer default_find_parent(Purp
 static gpointer default_find_parent(PurpleBlistNode *node)
 {
 	gpointer ret = NULL;
-	switch (purple_blist_node_get_type(node)) {
-		case PURPLE_BLIST_BUDDY_NODE:
-		case PURPLE_BLIST_CONTACT_NODE:
-		case PURPLE_BLIST_CHAT_NODE:
-			ret = purple_blist_node_get_parent(node);
-			break;
-		default:
-			break;
+	if(!PURPLE_IS_GROUP(node)){
+		ret = purple_blist_node_get_parent(node);
 	}
 	if (ret)
 		add_node(ret, ggblist);
@@ -235,13 +229,13 @@ static gboolean default_create_tooltip(g
 	int lastseen = 0;
 	char *title;
 
-	if (!node ||
-			purple_blist_node_get_type(node) == PURPLE_BLIST_OTHER_NODE)
+	if (!node)/* ||
+			purple_blist_node_get_type(node) == PURPLE_BLIST_OTHER_NODE)*/
 		return FALSE;
 
 	str = g_string_new("");
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		PurpleBuddy *pr = purple_contact_get_priority_buddy((PurpleContact*)node);
 		gboolean offline = !PURPLE_BUDDY_IS_ONLINE(pr);
 		gboolean showoffline = purple_prefs_get_bool(PREF_ROOT "/showoffline");
@@ -265,13 +259,13 @@ static gboolean default_create_tooltip(g
 			str = g_string_append(str, "\n----------\n");
 			tooltip_for_buddy(buddy, str, FALSE);
 		}
-	} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_BUDDY(node)) {
 		PurpleBuddy *buddy = (PurpleBuddy *)node;
 		tooltip_for_buddy(buddy, str, TRUE);
 		title = g_strdup(purple_buddy_get_name(buddy));
 		if (!PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node))
 			lastseen = purple_blist_node_get_int(node, "last_seen");
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		PurpleGroup *group = (PurpleGroup *)node;
 
 		g_string_append_printf(str, _("Online: %d\nTotal: %d"),
@@ -279,7 +273,7 @@ static gboolean default_create_tooltip(g
 						purple_blist_get_group_size(group, FALSE));
 
 		title = g_strdup(purple_group_get_name(group));
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		PurpleChat *chat = (PurpleChat *)node;
 		PurpleAccount *account = purple_chat_get_account(chat);
 
@@ -356,9 +350,9 @@ get_display_color(PurpleBlistNode  *node
 	PurpleBuddy *buddy;
 	int color = 0;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	if (PURPLE_IS_CONTACT(node))
 		node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
-	if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (!PURPLE_IS_BUDDY(node))
 		return 0;
 
 	buddy = (PurpleBuddy*)node;
@@ -387,12 +381,12 @@ get_blist_node_flag(PurpleBlistNode *nod
 
 	if (fnode && fnode->signed_timer)
 		flag |= GNT_TEXT_FLAG_BLINK;
-	else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	else if (PURPLE_IS_CONTACT(node)) {
 		node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
 		fnode = FINCH_GET_DATA(node);
 		if (fnode && fnode->signed_timer)
 			flag |= GNT_TEXT_FLAG_BLINK;
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		/* If the node is collapsed, then check to see if any of the priority buddies of
 		 * any of the contacts within this group recently signed on/off, and set the blink
 		 * flag appropriately. */
@@ -446,7 +440,7 @@ is_group_online(PurpleGroup *group)
 	PurpleBlistNode *node;
 	for (node = purple_blist_node_get_first_child(((PurpleBlistNode*)group)); node;
 			node = purple_blist_node_get_sibling_next(node)) {
-		if (PURPLE_BLIST_NODE_IS_CHAT(node) &&
+		if (PURPLE_IS_CHAT(node) &&
 				purple_account_is_connected(((PurpleChat *)node)->account))
 			return TRUE;
 		else if (is_contact_online((PurpleContact*)node))
@@ -470,13 +464,13 @@ add_node(PurpleBlistNode *node, FinchBli
 	if (!ggblist->manager->can_add_node(node))
 		return;
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (PURPLE_IS_BUDDY(node))
 		add_buddy((PurpleBuddy*)node, ggblist);
-	else if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	else if (PURPLE_IS_CONTACT(node))
 		add_contact((PurpleContact*)node, ggblist);
-	else if (PURPLE_BLIST_NODE_IS_GROUP(node))
+	else if (PURPLE_IS_GROUP(node))
 		add_group((PurpleGroup*)node, ggblist);
-	else if (PURPLE_BLIST_NODE_IS_CHAT(node))
+	else if (PURPLE_IS_CHAT(node))
 		add_chat((PurpleChat *)node, ggblist);
 
 	draw_tooltip(ggblist);
@@ -504,7 +498,7 @@ node_remove(PurpleBuddyList *list, Purpl
 	if (ggblist == NULL || FINCH_GET_DATA(node) == NULL)
 		return;
 
-	if (PURPLE_BLIST_NODE_IS_GROUP(node) && ggblist->new_group) {
+	if (PURPLE_IS_GROUP(node) && ggblist->new_group) {
 		ggblist->new_group = g_list_remove(ggblist->new_group, node);
 	}
 
@@ -552,19 +546,19 @@ node_update(PurpleBuddyList *list, Purpl
 			node_remove(list, node);
 	}
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_BUDDY(node)) {
 		PurpleBuddy *buddy = (PurpleBuddy*)node;
 		add_node((PurpleBlistNode*)buddy, purple_blist_get_ui_data());
 		node_update(list, purple_blist_node_get_parent(node));
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		add_node(node, purple_blist_get_ui_data());
-	} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	} else if (PURPLE_IS_CONTACT(node)) {
 		if (FINCH_GET_DATA(node)== NULL) {
 			/* The core seems to expect the UI to add the buddies. */
 			for (node = purple_blist_node_get_first_child(node); node; node = purple_blist_node_get_sibling_next(node))
 				add_node(node, purple_blist_get_ui_data());
 		}
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		if (!ggblist->manager->can_add_node(node))
 			node_remove(list, node);
 		else
@@ -889,13 +883,13 @@ get_display_name(PurpleBlistNode *node)
 	char status[8] = " ";
 	const char *name = NULL;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	if (PURPLE_IS_CONTACT(node))
 		node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));  /* XXX: this can return NULL?! */
 
 	if (node == NULL)
 		return NULL;
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (PURPLE_IS_BUDDY(node))
 	{
 		PurpleBuddy *buddy = (PurpleBuddy *)node;
 		PurpleStatusPrimitive prim;
@@ -925,14 +919,14 @@ get_display_name(PurpleBlistNode *node)
 		}
 		name = purple_buddy_get_alias(buddy);
 	}
-	else if (PURPLE_BLIST_NODE_IS_CHAT(node))
+	else if (PURPLE_IS_CHAT(node))
 	{
 		PurpleChat *chat = (PurpleChat*)node;
 		name = purple_chat_get_name(chat);
 
 		strncpy(status, "~", sizeof(status) - 1);
 	}
-	else if (PURPLE_BLIST_NODE_IS_GROUP(node))
+	else if (PURPLE_IS_GROUP(node))
 		return purple_group_get_name((PurpleGroup*)node);
 
 	g_snprintf(text, sizeof(text) - 1, "%s %s", status, name);
@@ -1030,10 +1024,10 @@ selection_activate(GntWidget *widget, Fi
 	if (!node)
 		return;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	if (PURPLE_IS_CONTACT(node))
 		node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (PURPLE_IS_BUDDY(node))
 	{
 		PurpleBuddy *buddy = (PurpleBuddy *)node;
 		PurpleConversation *conv;
@@ -1050,7 +1044,7 @@ selection_activate(GntWidget *widget, Fi
 		}
 		finch_conversation_set_active(conv);
 	}
-	else if (PURPLE_BLIST_NODE_IS_CHAT(node))
+	else if (PURPLE_IS_CHAT(node))
 	{
 		join_chat((PurpleChat*)node);
 	}
@@ -1273,7 +1267,7 @@ finch_blist_pounce_node_cb(PurpleBlistNo
 finch_blist_pounce_node_cb(PurpleBlistNode *selected, PurpleBlistNode *node)
 {
 	PurpleBuddy *b;
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	if (PURPLE_IS_CONTACT(node))
 		b = purple_contact_get_priority_buddy((PurpleContact *)node);
 	else
 		b = (PurpleBuddy *)node;
@@ -1385,18 +1379,18 @@ rename_blist_node(PurpleBlistNode *node,
 	if (name && !*name)
 		name = NULL;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		PurpleContact *contact = (PurpleContact*)node;
 		PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact);
 		purple_blist_alias_contact(contact, name);
 		purple_blist_alias_buddy(buddy, name);
 		serv_alias_buddy(buddy);
-	} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_BUDDY(node)) {
 		purple_blist_alias_buddy((PurpleBuddy*)node, name);
 		serv_alias_buddy((PurpleBuddy*)node);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node))
+	} else if (PURPLE_IS_CHAT(node))
 		purple_blist_alias_chat((PurpleChat*)node, name);
-	else if (PURPLE_BLIST_NODE_IS_GROUP(node) && (name != NULL))
+	else if (PURPLE_IS_GROUP(node) && (name != NULL))
 		purple_blist_rename_group((PurpleGroup*)node, name);
 	else
 		g_return_if_reached();
@@ -1409,20 +1403,20 @@ finch_blist_rename_node_cb(PurpleBlistNo
 	char *prompt;
 	const char *text;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	if (PURPLE_IS_CONTACT(node))
 		name = purple_contact_get_alias((PurpleContact*)node);
-	else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	else if (PURPLE_IS_BUDDY(node))
 		name = purple_buddy_get_contact_alias((PurpleBuddy*)node);
-	else if (PURPLE_BLIST_NODE_IS_CHAT(node))
+	else if (PURPLE_IS_CHAT(node))
 		name = purple_chat_get_name((PurpleChat*)node);
-	else if (PURPLE_BLIST_NODE_IS_GROUP(node))
+	else if (PURPLE_IS_GROUP(node))
 		name = purple_group_get_name((PurpleGroup*)node);
 	else
 		g_return_if_reached();
 
 	prompt = g_strdup_printf(_("Please enter the new name for %s"), name);
 
-	text = PURPLE_BLIST_NODE_IS_GROUP(node) ? _("Rename") : _("Set Alias");
+	text = PURPLE_IS_GROUP(node) ? _("Rename") : _("Set Alias");
 	purple_request_input(node, text, prompt, _("Enter empty string to reset the name."),
 			name, FALSE, FALSE, NULL, text, G_CALLBACK(rename_blist_node),
 			_("Cancel"), NULL,
@@ -1439,12 +1433,12 @@ static void showlog_cb(PurpleBlistNode *
 	PurpleAccount *account;
 	char *name = NULL;
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_BUDDY(node)) {
 		PurpleBuddy *b = (PurpleBuddy*) node;
 		type = PURPLE_LOG_IM;
 		name = g_strdup(purple_buddy_get_name(b));
 		account = purple_buddy_get_account(b);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		PurpleChat *c = (PurpleChat*) node;
 		PurplePluginProtocolInfo *prpl_info = NULL;
 		type = PURPLE_LOG_CHAT;
@@ -1453,7 +1447,7 @@ static void showlog_cb(PurpleBlistNode *
 		if (prpl_info && prpl_info->get_chat_name) {
 			name = prpl_info->get_chat_name(purple_chat_get_components(c));
 		}
-	} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	} else if (PURPLE_IS_CONTACT(node)) {
 		finch_log_show_contact((PurpleContact *)node);
 		return;
 	} else {
@@ -1478,12 +1472,12 @@ remove_group(PurpleGroup *group)
 	cnode = purple_blist_node_get_first_child(((PurpleBlistNode*)group));
 
 	while (cnode) {
-		if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+		if (PURPLE_IS_CONTACT(cnode)) {
 			bnode = purple_blist_node_get_first_child(cnode);
 			cnode = purple_blist_node_get_sibling_next(cnode);
 			while (bnode) {
 				PurpleBuddy *buddy;
-				if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) {
+				if (PURPLE_IS_BUDDY(bnode)) {
 					PurpleAccount *account;
 					buddy = (PurpleBuddy*)bnode;
 					bnode = purple_blist_node_get_sibling_next(bnode);
@@ -1496,7 +1490,7 @@ remove_group(PurpleGroup *group)
 					bnode = purple_blist_node_get_sibling_next(bnode);
 				}
 			}
-		} else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) {
+		} else if (PURPLE_IS_CHAT(cnode)) {
 			PurpleChat *chat = (PurpleChat *)cnode;
 			cnode = purple_blist_node_get_sibling_next(cnode);
 			if (purple_account_is_connected(purple_chat_get_account(chat)))
@@ -1512,16 +1506,16 @@ finch_blist_remove_node(PurpleBlistNode 
 static void
 finch_blist_remove_node(PurpleBlistNode *node)
 {
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		remove_contact((PurpleContact*)node);
-	} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_BUDDY(node)) {
 		PurpleBuddy *buddy = (PurpleBuddy*)node;
 		PurpleGroup *group = purple_buddy_get_group(buddy);
 		purple_account_remove_buddy(purple_buddy_get_account(buddy), buddy, group);
 		purple_blist_remove_buddy(buddy);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		purple_blist_remove_chat((PurpleChat*)node);
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		remove_group((PurpleGroup*)node);
 	}
 }
@@ -1533,17 +1527,17 @@ finch_blist_remove_node_cb(PurpleBlistNo
 	char *primary;
 	const char *name, *sec = NULL;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		PurpleContact *c = (PurpleContact*)node;
 		name = purple_contact_get_alias(c);
 		if (c->totalsize > 1)
 			sec = _("Removing this contact will also remove all the buddies in the contact");
-	} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_BUDDY(node)) {
 		name = purple_buddy_get_name((PurpleBuddy*)node);
 		account = purple_buddy_get_account((PurpleBuddy*)node);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		name = purple_chat_get_name((PurpleChat*)node);
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		name = purple_group_get_name((PurpleGroup*)node);
 		sec = _("Removing this group will also remove all the buddies in the group");
 	}
@@ -1574,9 +1568,9 @@ finch_blist_toggle_tag_buddy(PurpleBlist
 	} else {
 		ggblist->tagged = g_list_prepend(ggblist->tagged, node);
 	}
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	if (PURPLE_IS_CONTACT(node))
 		update_buddy_display(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)), ggblist);
-	else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	else if (PURPLE_IS_BUDDY(node))
 		update_buddy_display((PurpleBuddy*)node, ggblist);
 	else
 		update_node_display(node, ggblist);
@@ -1588,17 +1582,17 @@ finch_blist_place_tagged(PurpleBlistNode
 	PurpleGroup *tg = NULL;
 	PurpleContact *tc = NULL;
 
-	if (target == NULL ||
-			purple_blist_node_get_type(target) == PURPLE_BLIST_OTHER_NODE)
+	if (target == NULL)/* ||
+			purple_blist_node_get_type(target) == PURPLE_BLIST_OTHER_NODE)*/
 		return;
 
-	if (PURPLE_BLIST_NODE_IS_GROUP(target))
+	if (PURPLE_IS_GROUP(target))
 		tg = (PurpleGroup*)target;
-	else if (PURPLE_BLIST_NODE_IS_BUDDY(target)) {
+	else if (PURPLE_IS_BUDDY(target)) {
 		tc = (PurpleContact*)purple_blist_node_get_parent(target);
 		tg = (PurpleGroup*)purple_blist_node_get_parent((PurpleBlistNode*)tc);
 	} else {
-		if (PURPLE_BLIST_NODE_IS_CONTACT(target))
+		if (PURPLE_IS_CONTACT(target))
 			tc = (PurpleContact*)target;
 		tg = (PurpleGroup*)purple_blist_node_get_parent(target);
 	}
@@ -1610,11 +1604,11 @@ finch_blist_place_tagged(PurpleBlistNode
 			PurpleBlistNode *node = list->data;
 			list = g_list_delete_link(list, list);
 
-			if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+			if (PURPLE_IS_GROUP(node)) {
 				update_node_display(node, ggblist);
 				/* Add the group after the current group */
 				purple_blist_add_group((PurpleGroup*)node, (PurpleBlistNode*)tg);
-			} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+			} else if (PURPLE_IS_CONTACT(node)) {
 				update_buddy_display(purple_contact_get_priority_buddy((PurpleContact*)node), ggblist);
 				if (PURPLE_BLIST_NODE(tg) == target) {
 					/* The target is a group, just add the contact to the group. */
@@ -1626,22 +1620,22 @@ finch_blist_place_tagged(PurpleBlistNode
 					/* The target is a chat. Add the contact to the group after this chat. */
 					purple_blist_add_contact((PurpleContact*)node, NULL, target);
 				}
-			} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+			} else if (PURPLE_IS_BUDDY(node)) {
 				update_buddy_display((PurpleBuddy*)node, ggblist);
 				if (PURPLE_BLIST_NODE(tg) == target) {
 					/* The target is a group. Add this buddy in a new contact under this group. */
 					purple_blist_add_buddy((PurpleBuddy*)node, NULL, tg, NULL);
-				} else if (PURPLE_BLIST_NODE_IS_CONTACT(target)) {
+				} else if (PURPLE_IS_CONTACT(target)) {
 					/* Add to the contact. */
 					purple_blist_add_buddy((PurpleBuddy*)node, tc, NULL, NULL);
-				} else if (PURPLE_BLIST_NODE_IS_BUDDY(target)) {
+				} else if (PURPLE_IS_BUDDY(target)) {
 					/* Add to the contact after the selected buddy. */
 					purple_blist_add_buddy((PurpleBuddy*)node, NULL, NULL, target);
-				} else if (PURPLE_BLIST_NODE_IS_CHAT(target)) {
+				} else if (PURPLE_IS_CHAT(target)) {
 					/* Add to the selected chat's group. */
 					purple_blist_add_buddy((PurpleBuddy*)node, NULL, tg, NULL);
 				}
-			} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+			} else if (PURPLE_IS_CHAT(node)) {
 				update_node_display(node, ggblist);
 				if (PURPLE_BLIST_NODE(tg) == target)
 					purple_blist_add_chat((PurpleChat*)node, tg, NULL);
@@ -1673,8 +1667,9 @@ draw_context_menu(FinchBlist *ggblist)
 	tree = GNT_TREE(ggblist->tree);
 
 	node = gnt_tree_get_selection_data(tree);
+	/*
 	if (node && purple_blist_node_get_type(node) == PURPLE_BLIST_OTHER_NODE)
-		return;
+		return;*/
 
 	if (ggblist->tooltip)
 		remove_tooltip(ggblist);
@@ -1688,19 +1683,19 @@ draw_context_menu(FinchBlist *ggblist)
 	if (!node) {
 		create_group_menu(GNT_MENU(context), NULL);
 		title = g_strdup(_("Buddy List"));
-	} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	} else if (PURPLE_IS_CONTACT(node)) {
 		ggblist->cnode = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
 		create_buddy_menu(GNT_MENU(context), (PurpleBuddy*)ggblist->cnode);
 		title = g_strdup(purple_contact_get_alias((PurpleContact*)node));
-	} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_BUDDY(node)) {
 		PurpleBuddy *buddy = (PurpleBuddy *)node;
 		create_buddy_menu(GNT_MENU(context), buddy);
 		title = g_strdup(purple_buddy_get_name(buddy));
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		PurpleChat *chat = (PurpleChat*)node;
 		create_chat_menu(GNT_MENU(context), chat);
 		title = g_strdup(purple_chat_get_name(chat));
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		PurpleGroup *group = (PurpleGroup *)node;
 		create_group_menu(GNT_MENU(context), group);
 		title = g_strdup(purple_group_get_name(group));
@@ -1711,22 +1706,22 @@ draw_context_menu(FinchBlist *ggblist)
 	/* These are common for everything */
 	if (node) {
 		add_custom_action(GNT_MENU(context),
-				PURPLE_BLIST_NODE_IS_GROUP(node) ? _("Rename") : _("Alias"),
+				PURPLE_IS_GROUP(node) ? _("Rename") : _("Alias"),
 				PURPLE_CALLBACK(finch_blist_rename_node_cb), node);
 		add_custom_action(GNT_MENU(context), _("Remove"),
 				PURPLE_CALLBACK(finch_blist_remove_node_cb), node);
 
-		if (ggblist->tagged && (PURPLE_BLIST_NODE_IS_CONTACT(node)
-				|| PURPLE_BLIST_NODE_IS_GROUP(node))) {
+		if (ggblist->tagged && (PURPLE_IS_CONTACT(node)
+				|| PURPLE_IS_GROUP(node))) {
 			add_custom_action(GNT_MENU(context), _("Place tagged"),
 					PURPLE_CALLBACK(finch_blist_place_tagged), node);
 		}
 
-		if (PURPLE_BLIST_NODE_IS_BUDDY(node) || PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+		if (PURPLE_IS_BUDDY(node) || PURPLE_IS_CONTACT(node)) {
 			add_custom_action(GNT_MENU(context), _("Toggle Tag"),
 					PURPLE_CALLBACK(finch_blist_toggle_tag_buddy), node);
 		}
-		if (!PURPLE_BLIST_NODE_IS_GROUP(node)) {
+		if (!PURPLE_IS_GROUP(node)) {
 			add_custom_action(GNT_MENU(context), _("View Log"),
 					PURPLE_CALLBACK(showlog_cb), node);
 		}
@@ -1924,7 +1919,7 @@ key_pressed(GntWidget *widget, const cha
 	} else if (strcmp(text, GNT_KEY_INS) == 0) {
 		PurpleBlistNode *node = gnt_tree_get_selection_data(GNT_TREE(ggblist->tree));
 		purple_blist_request_add_buddy(NULL, NULL,
-				node && PURPLE_BLIST_NODE_IS_GROUP(node) ? purple_group_get_name(PURPLE_GROUP(node)) : NULL,
+				node && PURPLE_IS_GROUP(node) ? purple_group_get_name(PURPLE_GROUP(node)) : NULL,
 				NULL);
 	} else if (!gnt_tree_is_searching(GNT_TREE(ggblist->tree))) {
 		if (strcmp(text, "t") == 0) {
@@ -2379,25 +2374,20 @@ blist_node_compare_text(PurpleBlistNode 
 	char *us1, *us2;
 	int ret;
 
-	if (purple_blist_node_get_type(n1) != purple_blist_node_get_type(n2))
+	if (G_TYPE_FROM_INSTANCE(n1) != G_TYPE_FROM_INSTANCE(n2))
 		return blist_node_compare_position(n1, n2);
 
-	switch (purple_blist_node_get_type(n1))
-	{
-		case PURPLE_BLIST_CHAT_NODE:
-			s1 = purple_chat_get_name((PurpleChat*)n1);
-			s2 = purple_chat_get_name((PurpleChat*)n2);
-			break;
-		case PURPLE_BLIST_BUDDY_NODE:
-			return purple_presence_compare(purple_buddy_get_presence((PurpleBuddy*)n1),
-					purple_buddy_get_presence((PurpleBuddy*)n2));
-			break;
-		case PURPLE_BLIST_CONTACT_NODE:
-			s1 = purple_contact_get_alias((PurpleContact*)n1);
-			s2 = purple_contact_get_alias((PurpleContact*)n2);
-			break;
-		default:
-			return blist_node_compare_position(n1, n2);
+	if(PURPLE_IS_CHAT(n1)){
+		s1 = purple_chat_get_name((PurpleChat*)n1);
+		s2 = purple_chat_get_name((PurpleChat*)n2);
+	} else if(PURPLE_IS_BUDDY(n1)){
+		return purple_presence_compare(purple_buddy_get_presence((PurpleBuddy*)n1),
+						purple_buddy_get_presence((PurpleBuddy*)n2));
+	} else if(PURPLE_IS_CONTACT(n1)){
+		s1 = purple_contact_get_alias((PurpleContact*)n1);
+		s2 = purple_contact_get_alias((PurpleContact*)n2);
+	} else {
+		return blist_node_compare_position(n1, n2);
 	}
 
 	us1 = g_utf8_strup(s1, -1);
@@ -2414,23 +2404,19 @@ blist_node_compare_status(PurpleBlistNod
 {
 	int ret;
 
-	if (purple_blist_node_get_type(n1) != purple_blist_node_get_type(n2))
+	if (G_TYPE_FROM_INSTANCE(n1) != G_TYPE_FROM_INSTANCE(n2))
 		return blist_node_compare_position(n1, n2);
 
-	switch (purple_blist_node_get_type(n1)) {
-		case PURPLE_BLIST_CONTACT_NODE:
-			n1 = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(n1)));
-			n2 = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(n2)));
-			/* now compare the presence of the priority buddies */
-		case PURPLE_BLIST_BUDDY_NODE:
-			ret = purple_presence_compare(purple_buddy_get_presence((PurpleBuddy*)n1),
-					purple_buddy_get_presence((PurpleBuddy*)n2));
-			if (ret != 0)
-				return ret;
-			break;
-		default:
-			return blist_node_compare_position(n1, n2);
-			break;
+	if(PURPLE_IS_CONTACT(n1)) {
+		n1 = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(n1)));
+		n2 = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(n2)));
+	} else if(PURPLE_IS_BUDDY(n1)) {
+		ret = purple_presence_compare(purple_buddy_get_presence((PurpleBuddy*)n1),
+				purple_buddy_get_presence((PurpleBuddy*)n2));
+		if (ret != 0)
+			return ret;
+	} else {
+		return blist_node_compare_position(n1, n2);
 	}
 
 	/* Sort alphabetically if presence is not comparable */
@@ -2460,25 +2446,22 @@ blist_node_compare_log(PurpleBlistNode *
 	int ret;
 	PurpleBuddy *b1, *b2;
 
-	if (purple_blist_node_get_type(n1) != purple_blist_node_get_type(n2))
+	if (G_TYPE_FROM_INSTANCE(n1) != G_TYPE_FROM_INSTANCE(n2))
 		return blist_node_compare_position(n1, n2);
 
-	switch (purple_blist_node_get_type(n1)) {
-		case PURPLE_BLIST_BUDDY_NODE:
-			b1 = (PurpleBuddy*)n1;
-			b2 = (PurpleBuddy*)n2;
-			ret = purple_log_get_total_size(PURPLE_LOG_IM, purple_buddy_get_name(b2), purple_buddy_get_account(b2)) -
-					purple_log_get_total_size(PURPLE_LOG_IM, purple_buddy_get_name(b1), purple_buddy_get_account(b1));
-			if (ret != 0)
-				return ret;
-			break;
-		case PURPLE_BLIST_CONTACT_NODE:
-			ret = get_contact_log_size(n2) - get_contact_log_size(n1);
-			if (ret != 0)
-				return ret;
-			break;
-		default:
-			return blist_node_compare_position(n1, n2);
+	if(PURPLE_IS_BUDDY(n1)) {
+		b1 = (PurpleBuddy*)n1;
+		b2 = (PurpleBuddy*)n2;
+		ret = purple_log_get_total_size(PURPLE_LOG_IM, purple_buddy_get_name(b2), purple_buddy_get_account(b2)) -
+				purple_log_get_total_size(PURPLE_LOG_IM, purple_buddy_get_name(b1), purple_buddy_get_account(b1));
+		if (ret != 0)
+			return ret;
+	} else if(PURPLE_IS_CONTACT(n1)) {
+		ret = get_contact_log_size(n2) - get_contact_log_size(n1);
+		if (ret != 0)
+			return ret;
+	} else {
+		return blist_node_compare_position(n1, n2);
 	}
 	ret = blist_node_compare_text(n1, n2);
 	return ret;
@@ -2529,7 +2512,7 @@ buddy_recent_signed_on_off(gpointer data
 		node_remove(purple_get_blist(), node);
 	} else {
 		update_node_display(node, ggblist);
-		if (purple_blist_node_get_parent(node) && PURPLE_BLIST_NODE_IS_CONTACT(purple_blist_node_get_parent(node)))
+		if (purple_blist_node_get_parent(node) && PURPLE_IS_CONTACT(purple_blist_node_get_parent(node)))
 			update_node_display(purple_blist_node_get_parent(node), ggblist);
 	}
 
@@ -2548,7 +2531,7 @@ buddy_signed_on_off_cb(gpointer data)
 		purple_timeout_remove(fnode->signed_timer);
 	fnode->signed_timer = purple_timeout_add_seconds(6, (GSourceFunc)buddy_recent_signed_on_off, data);
 	update_node_display(node, ggblist);
-	if (purple_blist_node_get_parent(node) && PURPLE_BLIST_NODE_IS_CONTACT(purple_blist_node_get_parent(node)))
+	if (purple_blist_node_get_parent(node) && PURPLE_IS_CONTACT(purple_blist_node_get_parent(node)))
 		update_node_display(purple_blist_node_get_parent(node), ggblist);
 	return FALSE;
 }
@@ -2659,7 +2642,7 @@ auto_join_chats(gpointer data)
 
 	for (node = purple_blist_get_root(); node;
 			node = purple_blist_node_next(node, FALSE)) {
-		if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+		if (PURPLE_IS_CHAT(node)) {
 			PurpleChat *chat = (PurpleChat*)node;
 			if (purple_chat_get_account(chat) == account &&
 					purple_blist_node_get_bool(node, "gnt-autojoin"))
@@ -3082,7 +3065,7 @@ group_collapsed(GntWidget *widget, Purpl
 static void
 group_collapsed(GntWidget *widget, PurpleBlistNode *node, gboolean collapsed, gpointer null)
 {
-	if (PURPLE_BLIST_NODE_IS_GROUP(node))
+	if (PURPLE_IS_GROUP(node))
 		purple_blist_node_set_bool(node, "collapsed", collapsed);
 }
 
============================================================
--- finch/gntlog.c	a2349a031e3419313a2004a95d4dfa5722c4c4f0
+++ finch/gntlog.c	99ae58ad34d2de9411ce91aa7fd2247137011f58
@@ -460,7 +460,7 @@ void finch_log_show_contact(PurpleContac
 			child = purple_blist_node_get_sibling_next(child)) {
 		const char *name;
 		PurpleAccount *account;
-		if (!PURPLE_BLIST_NODE_IS_BUDDY(child))
+		if (!PURPLE_IS_BUDDY(child))
 			continue;
 
 		name = purple_buddy_get_name((PurpleBuddy *)child);
@@ -480,7 +480,7 @@ void finch_log_show_contact(PurpleContac
 	 * There is probably a better way to deal with this. */
 	if (name == NULL) {
 		child = purple_blist_node_get_first_child((PurpleBlistNode*)contact);
-		if (child != NULL && PURPLE_BLIST_NODE_IS_BUDDY(child))
+		if (child != NULL && PURPLE_IS_BUDDY(child))
 			name = purple_buddy_get_contact_alias((PurpleBuddy *)child);
 		if (name == NULL)
 			name = "";
============================================================
--- finch/gntpounce.c	98adc84bc90b248c3335d0343f520ebd6c953ea0
+++ finch/gntpounce.c	6967b15e120bec74902c83fdb01a11ded5a08930
@@ -171,7 +171,7 @@ setup_buddy_list_suggestion(GntEntry *en
 {
 	PurpleBlistNode *node = purple_blist_get_root();
 	for (; node; node = purple_blist_node_next(node, offline)) {
-		if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+		if (!PURPLE_IS_BUDDY(node))
 			continue;
 		gnt_entry_add_suggest(entry, purple_buddy_get_name((PurpleBuddy*)node));
 	}
============================================================
--- finch/gntrequest.c	bebb397405fd5e53b8cc8c2156683f9b62354f61
+++ finch/gntrequest.c	7b58d3f14eca2278c8903506a11574f9bc1c0184
@@ -436,7 +436,7 @@ create_string_field(PurpleRequestField *
 		PurpleBlistNode *node = purple_blist_get_root();
 		gboolean offline = purple_str_has_suffix(hint, "all");
 		for (; node; node = purple_blist_node_next(node, offline)) {
-			if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+			if (!PURPLE_IS_BUDDY(node))
 				continue;
 			gnt_entry_add_suggest(GNT_ENTRY(entry), purple_buddy_get_name((PurpleBuddy*)node));
 		}
@@ -447,7 +447,7 @@ create_string_field(PurpleRequestField *
 		PurpleBlistNode *node;
 		for (node = purple_blist_get_root(); node;
 				node = purple_blist_node_get_sibling_next(node)) {
-			if (PURPLE_BLIST_NODE_IS_GROUP(node))
+			if (PURPLE_IS_GROUP(node))
 				gnt_entry_add_suggest(GNT_ENTRY(entry), purple_group_get_name((PurpleGroup *)node));
 		}
 	}
============================================================
--- finch/plugins/grouping.c	7821b6eebf208f1d0fa3f6cc8b7acea9e6115af8
+++ finch/plugins/grouping.c	aeb862b4c0c0e2eab7f1867ee657c5d500a07544
@@ -33,8 +33,7 @@ static FinchBlistManager *default_manage
 /**
  * Online/Offline
  */
-static PurpleBlistNode online = {.type = PURPLE_BLIST_OTHER_NODE},
-					   offline = {.type = PURPLE_BLIST_OTHER_NODE};
+static PurpleGroup online, offline;
 
 static gboolean on_offline_init()
 {
@@ -50,34 +49,24 @@ static gboolean on_offline_can_add_node(
 
 static gboolean on_offline_can_add_node(PurpleBlistNode *node)
 {
-	switch (purple_blist_node_get_type(node)) {
-		case PURPLE_BLIST_CONTACT_NODE:
-			{
-				PurpleContact *contact = (PurpleContact*)node;
-				if (contact->currentsize > 0)
-					return TRUE;
-				return FALSE;
-			}
-			break;
-		case PURPLE_BLIST_BUDDY_NODE:
-			{
-				PurpleBuddy *buddy = (PurpleBuddy*)node;
-				if (PURPLE_BUDDY_IS_ONLINE(buddy))
-					return TRUE;
-				if (purple_prefs_get_bool("/finch/blist/showoffline") &&
-						purple_account_is_connected(purple_buddy_get_account(buddy)))
-					return TRUE;
-				return FALSE;
-			}
-			break;
-		case PURPLE_BLIST_CHAT_NODE:
-			{
-				PurpleChat *chat = (PurpleChat*)node;
-				return purple_account_is_connected(purple_chat_get_account(chat));
-			}
-			break;
-		default:
-			return FALSE;
+	if(PURPLE_IS_CONTACT(node)){
+		PurpleContact *contact = (PurpleContact*)node;
+		if (contact->currentsize > 0)
+			return TRUE;
+		return FALSE;
+	} else if(PURPLE_IS_BUDDY(node)){
+		PurpleBuddy *buddy = (PurpleBuddy*)node;
+		if (PURPLE_BUDDY_IS_ONLINE(buddy))
+			return TRUE;
+		if (purple_prefs_get_bool("/finch/blist/showoffline") &&
+				purple_account_is_connected(purple_buddy_get_account(buddy)))
+			return TRUE;
+		return FALSE;
+	} else if(PURPLE_IS_CHAT(node)){
+		PurpleChat *chat = (PurpleChat*)node;
+		return purple_account_is_connected(purple_chat_get_account(chat));
+	} else {
+		return FALSE;
 	}
 }
 
@@ -85,20 +74,14 @@ static gpointer on_offline_find_parent(P
 {
 	gpointer ret = NULL;
 
-	switch (purple_blist_node_get_type(node)) {
-		case PURPLE_BLIST_CONTACT_NODE:
-			node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
-			ret = PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node) ? &online : &offline;
-			break;
-		case PURPLE_BLIST_BUDDY_NODE:
-			ret = purple_blist_node_get_parent(node);
-			finch_blist_manager_add_node(ret);
-			break;
-		case PURPLE_BLIST_CHAT_NODE:
-			ret = &online;
-			break;
-		default:
-			break;
+	if(PURPLE_IS_CONTACT(node)){
+		node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
+		ret = PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node) ? &online : &offline;
+	} else if(PURPLE_IS_BUDDY(node)){
+		ret = purple_blist_node_get_parent(node);
+		finch_blist_manager_add_node(ret);
+	} else if(PURPLE_IS_CHAT(node)){
+		ret = &online;
 	}
 	return ret;
 }
@@ -107,12 +90,12 @@ static gboolean on_offline_create_toolti
 {
 	PurpleBlistNode *node = selected_row;
 
-	if (purple_blist_node_get_type(node) == PURPLE_BLIST_OTHER_NODE) {
+	if (node == PURPLE_BLIST_NODE(&online) || node == PURPLE_BLIST_NODE(&offline)) {
 		/* There should be some easy way of getting the total online count,
 		 * or total number of chats. Doing a loop here will probably be pretty
 		 * expensive. */
 		if (body)
-			*body = g_string_new(node == &online ? _("Online Buddies") : _("Offline Buddies"));
+			*body = g_string_new(node == PURPLE_BLIST_NODE(&online) ? _("Online Buddies") : _("Offline Buddies"));
 		return TRUE;
 	} else {
 		return default_manager ? default_manager->create_tooltip(selected_row, body, tool_title) : FALSE;
@@ -134,7 +117,7 @@ static FinchBlistManager on_offline =
 /**
  * Meebo-like Grouping.
  */
-static PurpleBlistNode meebo = {.type = PURPLE_BLIST_OTHER_NODE};
+static PurpleGroup meebo;
 static gboolean meebo_init()
 {
 	GntTree *tree = finch_blist_get_tree();
@@ -147,7 +130,7 @@ static gpointer meebo_find_parent(Purple
 
 static gpointer meebo_find_parent(PurpleBlistNode *node)
 {
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		PurpleBuddy *buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
 		if (buddy && !PURPLE_BUDDY_IS_ONLINE(buddy)) {
 			return &meebo;
@@ -194,13 +177,8 @@ static gpointer no_group_find_parent(Pur
 {
 	gpointer ret = NULL;
 
-	switch (purple_blist_node_get_type(node)) {
-		case PURPLE_BLIST_BUDDY_NODE:
-			ret = purple_blist_node_get_parent(node);
-			finch_blist_manager_add_node(ret);
-			break;
-		default:
-			break;
+	if(PURPLE_IS_BUDDY(node)){
+		finch_blist_manager_add_node(ret = purple_blist_node_get_parent(node));
 	}
 	return ret;
 }
@@ -247,7 +225,7 @@ nested_group_find_parent(PurpleBlistNode
 	PurpleBlistNode *ret, *parent;
 	GntTree *tree;
 
-	if (!PURPLE_BLIST_NODE_IS_GROUP(node))
+	if (!PURPLE_IS_GROUP(node))
 		return default_manager->find_parent(node);
 
 	group = (PurpleGroup *)node;
@@ -266,9 +244,9 @@ nested_group_find_parent(PurpleBlistNode
 			finch_blist_manager_add_node(ret);
 			parent = ret;
 		} else if (!(ret = g_hash_table_lookup(groups, name))) {
+			#warning: This is a problem, PurpleBlistNode is abstract...
 			ret = g_new0(PurpleBlistNode, 1);
 			g_hash_table_insert(groups, g_strdup(name), ret);
-			ret->type = PURPLE_BLIST_OTHER_NODE;
 			gnt_tree_add_row_last(tree, ret,
 					gnt_tree_create_row(tree, name), parent);
 			parent = ret;
@@ -285,8 +263,8 @@ nested_group_create_tooltip(gpointer sel
 nested_group_create_tooltip(gpointer selected_row, GString **body, char **title)
 {
 	PurpleBlistNode *node = selected_row;
-	if (!node ||
-			purple_blist_node_get_type(node) != PURPLE_BLIST_OTHER_NODE)
+#warning: Someone check this logic, not sure if it still works
+	if (!node) 
 		return default_manager->create_tooltip(selected_row, body, title);
 	if (body)
 		*body = g_string_new(_("Nested Subgroup"));  /* Perhaps list the child groups/subgroups? */
@@ -299,7 +277,7 @@ nested_group_can_add_node(PurpleBlistNod
 	PurpleBlistNode *group;
 	int len;
 
-	if (!PURPLE_BLIST_NODE_IS_GROUP(node))
+	if (!PURPLE_IS_GROUP(node))
 		return default_manager->can_add_node(node);
 
 	if (default_manager->can_add_node(node))
============================================================
--- libpurple/account.c	6147d3da94bd1399e5f47e64bb7ddc87d393d1da
+++ libpurple/account.c	2e49ab500a8415b328d646121c936e088aa2c1ea
@@ -2545,19 +2545,19 @@ purple_accounts_delete(PurpleAccount *ac
 	     gnode != NULL;
 		 gnode = purple_blist_node_get_sibling_next(gnode))
 	{
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
+		if (!PURPLE_IS_GROUP(gnode))
 			continue;
 
 		cnode = purple_blist_node_get_first_child(gnode);
 		while (cnode) {
 			PurpleBlistNode *cnode_next = purple_blist_node_get_sibling_next(cnode);
 
-			if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+			if(PURPLE_IS_CONTACT(cnode)) {
 				bnode = purple_blist_node_get_first_child(cnode);
 				while (bnode) {
 					PurpleBlistNode *bnode_next = purple_blist_node_get_sibling_next(bnode);
 
-					if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) {
+					if (PURPLE_IS_BUDDY(bnode)) {
 						PurpleBuddy *b = (PurpleBuddy *)bnode;
 
 						if (purple_buddy_get_account(b) == account)
@@ -2565,7 +2565,7 @@ purple_accounts_delete(PurpleAccount *ac
 					}
 					bnode = bnode_next;
 				}
-			} else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) {
+			} else if (PURPLE_IS_CHAT(cnode)) {
 				PurpleChat *c = (PurpleChat *)cnode;
 
 				if (purple_chat_get_account(c) == account)
============================================================
--- libpurple/blist-node.c	c0dbd6e76e24951748f14be8ecce3104d0554db5
+++ libpurple/blist-node.c	de40b40783991631ab388100a5db7e96c4ca92b6
@@ -97,7 +97,7 @@ PurpleBlistNode *purple_blist_node_next(
 	do
 	{
 		ret = get_next_node(ret, TRUE);
-	} while (ret && PURPLE_BLIST_NODE_IS_BUDDY(ret) &&
+	} while (ret && PURPLE_IS_BUDDY(ret) &&
 			!purple_account_is_connected(purple_buddy_get_account((PurpleBuddy *)ret)));
 
 	return ret;
@@ -160,10 +160,10 @@ g_return_if_fail(source != NULL);
 g_return_if_fail(source != NULL);
 	g_return_if_fail(node != NULL);
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		target = (PurpleContact *)node;
 		prev = purple_blist_get_last_child(node);
-	} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_BUDDY(node)) {
 		target = (PurpleContact *)node->parent;
 		prev = node;
 	} else {
@@ -179,7 +179,7 @@ g_return_if_fail(source != NULL);
 	while (next) {
 		cur = next;
 		next = cur->next;
-		if (PURPLE_BLIST_NODE_IS_BUDDY(cur)) {
+		if (PURPLE_IS_BUDDY(cur)) {
 			purple_blist_add_buddy((PurpleBuddy *)cur, target, NULL, prev);
 			prev = cur;
 		}
@@ -230,13 +230,6 @@ purple_blist_node_get_flags(PurpleBlistN
 	return node->flags;
 }
 
-PurpleBlistNodeType
-purple_blist_node_get_type(PurpleBlistNode *node)
-{
-	g_return_val_if_fail(node != NULL, PURPLE_BLIST_OTHER_NODE);
-	return node->type;
-}
-
 gboolean
 purple_blist_node_has_setting(PurpleBlistNode *node,
                               const char *key)
@@ -398,13 +391,13 @@ purple_blist_node_finalize(GObject *obje
 	if (ui_ops && ui_ops->remove)
 		ui_ops->remove(purplebuddylist, node);
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (PURPLE_IS_BUDDY(node))
 		g_object_unref(node);
-	else if (PURPLE_BLIST_NODE_IS_CHAT(node))
+	else if (PURPLE_IS_CHAT(node))
 		g_object_unref(node);
-	else if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	else if (PURPLE_IS_CONTACT(node))
 		g_object_unref(node);
-	else if (PURPLE_BLIST_NODE_IS_GROUP(node))
+	else if (PURPLE_IS_GROUP(node))
 		g_object_unref(node);
 
 	parent_class->finalize(object);
============================================================
--- libpurple/blist.c	65f1ade8c355e03e357ba80077eac2f491891e58
+++ libpurple/blist.c	af93adaeaf889706100d2c0b93bfcc5742451dbc
@@ -198,7 +198,7 @@ blist_to_xmlnode(void)
 	{
 		if (!PURPLE_BLIST_NODE_SHOULD_SAVE(gnode))
 			continue;
-		if (PURPLE_BLIST_NODE_IS_GROUP(gnode))
+		if (PURPLE_IS_GROUP(gnode))
 		{
 			grandchild = group_to_xmlnode(gnode);
 			xmlnode_insert_child(child, grandchild);
@@ -463,13 +463,13 @@ void purple_blist_add_contact(PurpleCont
 	PurpleBlistNode *gnode, *cnode, *bnode;
 
 	g_return_if_fail(contact != NULL);
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT((PurpleBlistNode*)contact));
+	g_return_if_fail(PURPLE_IS_CONTACT((PurpleBlistNode*)contact));
 
 	if (PURPLE_BLIST_NODE(contact) == node)
 		return;
 
-	if (node && (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
-				PURPLE_BLIST_NODE_IS_CHAT(node)))
+	if (node && (PURPLE_IS_CONTACT(node) ||
+				PURPLE_IS_CHAT(node)))
 		g = (PurpleGroup*)node->parent;
 	else if (group)
 		g = group;
@@ -561,8 +561,8 @@ void purple_blist_add_contact(PurpleCont
 		purple_blist_schedule_save();
 	}
 
-	if (node && (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
-				PURPLE_BLIST_NODE_IS_CHAT(node))) {
+	if (node && (PURPLE_IS_CONTACT(node) ||
+				PURPLE_IS_CHAT(node))) {
 		if (node->next)
 			node->next->prev = cnode;
 		cnode->next = node->next;
@@ -602,7 +602,7 @@ void purple_blist_add_group(PurpleGroup 
 	PurpleBlistNode *gnode = (PurpleBlistNode*)group;
 
 	g_return_if_fail(group != NULL);
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_GROUP((PurpleBlistNode *)group));
+	g_return_if_fail(PURPLE_IS_GROUP((PurpleBlistNode *)group));
 
 	ops = purple_blist_get_ui_ops();
 
@@ -629,7 +629,7 @@ void purple_blist_add_group(PurpleGroup 
 			gnode->next->prev = gnode->prev;
 	}
 
-	if (node && PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	if (node && PURPLE_IS_GROUP(node)) {
 		gnode->next = node->next;
 		gnode->prev = node;
 		if (node->next)
@@ -957,13 +957,13 @@ void purple_blist_add_account(PurpleAcco
 		return;
 
 	for (gnode = purplebuddylist->root; gnode; gnode = gnode->next) {
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
+		if (!PURPLE_IS_GROUP(gnode))
 			continue;
 		for (cnode = gnode->child; cnode; cnode = cnode->next) {
-			if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+			if (PURPLE_IS_CONTACT(cnode)) {
 				gboolean recompute = FALSE;
 					for (bnode = cnode->child; bnode; bnode = bnode->next) {
-						if (PURPLE_BLIST_NODE_IS_BUDDY(bnode) &&
+						if (PURPLE_IS_BUDDY(bnode) &&
 								((PurpleBuddy*)bnode)->account == account) {
 							recompute = TRUE;
 							((PurpleContact*)cnode)->currentsize++;
@@ -977,7 +977,7 @@ void purple_blist_add_account(PurpleAcco
 						purple_contact_invalidate_priority_buddy((PurpleContact*)cnode);
 						ops->update(purplebuddylist, cnode);
 					}
-			} else if (PURPLE_BLIST_NODE_IS_CHAT(cnode) &&
+			} else if (PURPLE_IS_CHAT(cnode) &&
 					((PurpleChat*)cnode)->account == account) {
 				((PurpleGroup *)gnode)->online++;
 				((PurpleGroup *)gnode)->currentsize++;
@@ -1001,18 +1001,18 @@ void purple_blist_remove_account(PurpleA
 	g_return_if_fail(purplebuddylist != NULL);
 
 	for (gnode = purplebuddylist->root; gnode; gnode = gnode->next) {
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
+		if (!PURPLE_IS_GROUP(gnode))
 			continue;
 
 		group = (PurpleGroup *)gnode;
 
 		for (cnode = gnode->child; cnode; cnode = cnode->next) {
-			if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+			if (PURPLE_IS_CONTACT(cnode)) {
 				gboolean recompute = FALSE;
 				contact = (PurpleContact *)cnode;
 
 				for (bnode = cnode->child; bnode; bnode = bnode->next) {
-					if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+					if (!PURPLE_IS_BUDDY(bnode))
 						continue;
 
 					buddy = (PurpleBuddy *)bnode;
@@ -1052,7 +1052,7 @@ void purple_blist_remove_account(PurpleA
 					if (ops && ops->update)
 						ops->update(purplebuddylist, cnode);
 				}
-			} else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) {
+			} else if (PURPLE_IS_CHAT(cnode)) {
 				chat = (PurpleChat *)cnode;
 
 				if(chat->account == account) {
@@ -1077,10 +1077,10 @@ gboolean purple_group_on_account(PurpleG
 {
 	PurpleBlistNode *cnode;
 	for (cnode = ((PurpleBlistNode *)g)->child; cnode; cnode = cnode->next) {
-		if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+		if (PURPLE_IS_CONTACT(cnode)) {
 			if(purple_contact_on_account((PurpleContact *) cnode, account))
 				return TRUE;
-		} else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) {
+		} else if (PURPLE_IS_CHAT(cnode)) {
 			PurpleChat *chat = (PurpleChat *)cnode;
 			if ((!account && purple_account_is_connected(chat->account))
 					|| chat->account == account)
@@ -1096,7 +1096,7 @@ void purple_blist_add_chat(PurpleChat *c
 	PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
 
 	g_return_if_fail(chat != NULL);
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT((PurpleBlistNode *)chat));
+	g_return_if_fail(PURPLE_IS_CHAT((PurpleBlistNode *)chat));
 
 	if (node == NULL) {
 		if (group == NULL)
@@ -1186,7 +1186,7 @@ void purple_blist_add_buddy(PurpleBuddy 
 	GHashTable *account_buddies;
 
 	g_return_if_fail(buddy != NULL);
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY((PurpleBlistNode*)buddy));
+	g_return_if_fail(PURPLE_IS_BUDDY((PurpleBlistNode*)buddy));
 
 	bnode = (PurpleBlistNode *)buddy;
 
@@ -1196,7 +1196,7 @@ void purple_blist_add_buddy(PurpleBuddy 
 				&& bnode == bnode->parent->child))
 		return;
 
-	if (node && PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (node && PURPLE_IS_BUDDY(node)) {
 		c = (PurpleContact*)node->parent;
 		g = (PurpleGroup*)node->parent->parent;
 	} else if (contact) {
@@ -1270,7 +1270,7 @@ void purple_blist_add_buddy(PurpleBuddy 
 		}
 	}
 
-	if (node && PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (node && PURPLE_IS_BUDDY(node)) {
 		if (node->next)
 			node->next->prev = bnode;
 		bnode->next = node->next;
@@ -1353,7 +1353,7 @@ purple_blist_find_chat(PurpleAccount *ac
 	normname = g_strdup(purple_normalize(account, name));
 	for (group = purplebuddylist->root; group != NULL; group = group->next) {
 		for (node = group->child; node != NULL; node = node->next) {
-			if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+			if (PURPLE_IS_CHAT(node)) {
 
 				chat = (PurpleChat*)node;
 
============================================================
--- libpurple/buddy.c	3570bd63f7ddff7fbca726393c481ed7a84e2d33
+++ libpurple/buddy.c	5e6c3534255d110c7c4b33e5a4fdc88af5185d35
@@ -234,7 +234,6 @@ PurpleBuddy *purple_buddy_new(PurpleAcco
 	buddy->name     = purple_utf8_strip_unprintables(name);
 	buddy->alias    = purple_utf8_strip_unprintables(alias);
 	buddy->presence = purple_presence_new_for_buddy(buddy);
-	((PurpleBlistNode *)buddy)->type = PURPLE_BLIST_BUDDY_NODE;
 
 	purple_presence_set_status_active(buddy->presence, "offline", TRUE);
 
============================================================
--- libpurple/buddyicon.c	9a9f3a332ca776b152c1cd7e74f45cb07bac2917
+++ libpurple/buddyicon.c	200a370846cd005fb0837fed32a87875c2e5fb2d
@@ -860,9 +860,9 @@ purple_buddy_icons_node_set_custom_icon(
 
 	g_return_val_if_fail(node != NULL, NULL);
 
-	if (!PURPLE_BLIST_NODE_IS_CONTACT(node) &&
-	    !PURPLE_BLIST_NODE_IS_CHAT(node) &&
-	    !PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	if (!PURPLE_IS_CONTACT(node) &&
+	    !PURPLE_IS_CHAT(node) &&
+	    !PURPLE_IS_GROUP(node)) {
 		return NULL;
 	}
 
@@ -889,7 +889,7 @@ purple_buddy_icons_node_set_custom_icon(
 	else
 		g_hash_table_remove(pointer_icon_cache, node);
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		PurpleBlistNode *child;
 		for (child = purple_blist_node_get_first_child(node);
 		     child;
@@ -898,7 +898,7 @@ purple_buddy_icons_node_set_custom_icon(
 			PurpleBuddy *buddy;
 			PurpleConversation *conv;
 
-			if (!PURPLE_BLIST_NODE_IS_BUDDY(child))
+			if (!PURPLE_IS_BUDDY(child))
 				continue;
 
 			buddy = (PurpleBuddy *)child;
@@ -912,7 +912,7 @@ purple_buddy_icons_node_set_custom_icon(
 			 * icon changes? */
 			purple_blist_update_node_icon((PurpleBlistNode*)buddy);
 		}
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		PurpleConversation *conv = NULL;
 
 		conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, purple_chat_get_name((PurpleChat*)node), purple_chat_get_account((PurpleChat*)node));
@@ -945,9 +945,9 @@ purple_buddy_icons_node_set_custom_icon_
 
 	g_return_val_if_fail(node != NULL, NULL);
 
-	if (!PURPLE_BLIST_NODE_IS_CONTACT(node) &&
-	    !PURPLE_BLIST_NODE_IS_CHAT(node) &&
-	    !PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	if (!PURPLE_IS_CONTACT(node) &&
+	    !PURPLE_IS_CHAT(node) &&
+	    !PURPLE_IS_GROUP(node)) {
 		return NULL;
 	}
 
@@ -1173,7 +1173,7 @@ _purple_buddy_icons_blist_loaded_cb()
 
 	while (node != NULL)
 	{
-		if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+		if (PURPLE_IS_BUDDY(node))
 		{
 			const char *filename;
 
@@ -1202,9 +1202,9 @@ _purple_buddy_icons_blist_loaded_cb()
 				}
 			}
 		}
-		else if (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
-		         PURPLE_BLIST_NODE_IS_CHAT(node) ||
-		         PURPLE_BLIST_NODE_IS_GROUP(node))
+		else if (PURPLE_IS_CONTACT(node) ||
+		         PURPLE_IS_CHAT(node) ||
+		         PURPLE_IS_GROUP(node))
 		{
 			const char *filename;
 
============================================================
--- libpurple/chat.c	06661d35317cc3ac04fad178185a012bafc76519
+++ libpurple/chat.c	9c950e3e65a6c1fdbbf4412f28eab0ca47e9d459
@@ -172,7 +172,6 @@ PurpleChat *purple_chat_new(PurpleAccoun
 		chat->alias = purple_utf8_strip_unprintables(alias);
 	chat->components = components;
 	purple_blist_node_initialize_settings((PurpleBlistNode *)chat);
-	((PurpleBlistNode *)chat)->type = PURPLE_BLIST_CHAT_NODE;
 
 	if (ops != NULL && ops->new_node != NULL)
 		ops->new_node((PurpleBlistNode *)chat);
============================================================
--- libpurple/contact.c	60c9db4f2c755885c0a5567037a8071b546f3d88
+++ libpurple/contact.c	ba49ce4723f708bde0b593c2491c7ed3527502f1
@@ -52,7 +52,7 @@ contact_to_xmlnode(PurpleBlistNode *cnod
 	{
 		if (!PURPLE_BLIST_NODE_SHOULD_SAVE(bnode))
 			continue;
-		if (PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+		if (PURPLE_IS_BUDDY(bnode))
 		{
 			child = buddy_to_xmlnode(bnode);
 			xmlnode_insert_child(node, child);
@@ -108,7 +108,7 @@ purple_contact_compute_priority_buddy(Pu
 	{
 		PurpleBuddy *buddy;
 
-		if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+		if (!PURPLE_IS_BUDDY(bnode))
 			continue;
 
 		buddy = (PurpleBuddy*)bnode;
@@ -197,7 +197,6 @@ PurpleContact *purple_contact_new()
 	contact->currentsize = 0;
 	contact->online = 0;
 	purple_blist_node_initialize_settings((PurpleBlistNode *)contact);
-	((PurpleBlistNode *)contact)->type = PURPLE_BLIST_CONTACT_NODE;
 
 	if (ops && ops->new_node)
 		ops->new_node((PurpleBlistNode *)contact);
@@ -246,7 +245,7 @@ gboolean purple_contact_on_account(Purpl
 	for (bnode = cnode->child; bnode; bnode = bnode->next) {
 		PurpleBuddy *buddy;
 
-		if (! PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+		if (! PURPLE_IS_BUDDY(bnode))
 			continue;
 
 		buddy = (PurpleBuddy *)bnode;
============================================================
--- libpurple/group.c	e4dc1d2479d663f8743cdc4a314594ba5db1d1f8
+++ libpurple/group.c	63148d6a51c6af6feecf6a677122e49368867c9a
@@ -51,12 +51,12 @@ group_to_xmlnode(PurpleBlistNode *gnode)
 	{
 		if (!PURPLE_BLIST_NODE_SHOULD_SAVE(cnode))
 			continue;
-		if (PURPLE_BLIST_NODE_IS_CONTACT(cnode))
+		if (PURPLE_IS_CONTACT(cnode))
 		{
 			child = contact_to_xmlnode(cnode);
 			xmlnode_insert_child(node, child);
 		}
-		else if (PURPLE_BLIST_NODE_IS_CHAT(cnode))
+		else if (PURPLE_IS_CHAT(cnode))
 		{
 			child = chat_to_xmlnode(cnode);
 			xmlnode_insert_child(node, child);
@@ -105,7 +105,7 @@ void purple_blist_rename_group(PurpleGro
 		while (child)
 		{
 			next = child->next;
-			if (PURPLE_BLIST_NODE_IS_CONTACT(child)) {
+			if (PURPLE_IS_CONTACT(child)) {
 				PurpleBlistNode *bnode;
 				purple_blist_add_contact((PurpleContact *)child, dest, prev);
 				for (bnode = child->child; bnode != NULL; bnode = bnode->next) {
@@ -114,7 +114,7 @@ void purple_blist_rename_group(PurpleGro
 					moved_buddies = g_list_append(moved_buddies, bnode);
 				}
 				prev = child;
-			} else if (PURPLE_BLIST_NODE_IS_CHAT(child)) {
+			} else if (PURPLE_IS_CHAT(child)) {
 				purple_blist_add_chat((PurpleChat *)child, dest, prev);
 				prev = child;
 			} else {
@@ -135,7 +135,7 @@ void purple_blist_rename_group(PurpleGro
 
 		/* Build a GList of all buddies in this group */
 		for (cnode = ((PurpleBlistNode *)source)->child; cnode != NULL; cnode = cnode->next) {
-			if (PURPLE_BLIST_NODE_IS_CONTACT(cnode))
+			if (PURPLE_IS_CONTACT(cnode))
 				for (bnode = cnode->child; bnode != NULL; bnode = bnode->next)
 					moved_buddies = g_list_append(moved_buddies, bnode);
 		}
@@ -210,12 +210,12 @@ GSList *purple_group_get_accounts(Purple
 	gnode = (PurpleBlistNode *)group;
 
 	for (cnode = gnode->child;  cnode; cnode = cnode->next) {
-		if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) {
+		if (PURPLE_IS_CHAT(cnode)) {
 			if (!g_slist_find(l, ((PurpleChat *)cnode)->account))
 				l = g_slist_append(l, ((PurpleChat *)cnode)->account);
-		} else if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+		} else if (PURPLE_IS_CONTACT(cnode)) {
 			for (bnode = cnode->child; bnode; bnode = bnode->next) {
-				if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) {
+				if (PURPLE_IS_BUDDY(bnode)) {
 					if (!g_slist_find(l, ((PurpleBuddy *)bnode)->account))
 						l = g_slist_append(l, ((PurpleBuddy *)bnode)->account);
 				}
@@ -285,7 +285,6 @@ PurpleGroup *purple_group_new(const char
 	group->currentsize = 0;
 	group->online = 0;
 	purple_blist_node_initialize_settings((PurpleBlistNode *)group);
-	((PurpleBlistNode *)group)->type = PURPLE_BLIST_GROUP_NODE;
 
 	if (ops && ops->new_node)
 		ops->new_node((PurpleBlistNode *)group);
============================================================
--- libpurple/log.c	95dc699b4a96a1c1aa599f3d89b17f0da1d92fc2
+++ libpurple/log.c	e82b1a13e39fa862f69d9f7d1834ebb08fe2518e
@@ -2020,14 +2020,14 @@ static void old_logger_get_log_sets(Purp
 		     !found && gnode != NULL;
 			 gnode = purple_blist_node_get_sibling_next(gnode))
 		{
-			if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
+			if (!PURPLE_IS_GROUP(gnode))
 				continue;
 
 			for (cnode = purple_blist_node_get_first_child(gnode);
 			     !found && cnode != NULL;
 				 cnode = purple_blist_node_get_sibling_next(cnode))
 			{
-				if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
+				if (!PURPLE_IS_CONTACT(cnode))
 					continue;
 
 				for (bnode = purple_blist_node_get_first_child(cnode);
============================================================
--- libpurple/plugins/autoaccept.c	ff4a6d0c679dedcfb4196f4e42e91e31ad5dc75d
+++ libpurple/plugins/autoaccept.c	8e12770ed0a356f5628e5e986a8242abe275e224
@@ -105,7 +105,7 @@ file_recv_request_cb(PurpleXfer *xfer, g
 	}
 
 	node = purple_blist_node_get_parent(node);
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node));
+	g_return_if_fail(PURPLE_IS_CONTACT(node));
 
 	pref = purple_prefs_get_string(PREF_PATH);
 	switch (purple_blist_node_get_int(node, "autoaccept"))
@@ -178,9 +178,9 @@ save_cb(PurpleBlistNode *node, int choic
 static void
 save_cb(PurpleBlistNode *node, int choice)
 {
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (PURPLE_IS_BUDDY(node))
 		node = purple_blist_node_get_parent(node);
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node));
+	g_return_if_fail(PURPLE_IS_CONTACT(node));
 	purple_blist_node_set_int(node, "autoaccept", choice);
 }
 
@@ -189,9 +189,9 @@ set_auto_accept_settings(PurpleBlistNode
 {
 	char *message;
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (PURPLE_IS_BUDDY(node))
 		node = purple_blist_node_get_parent(node);
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node));
+	g_return_if_fail(PURPLE_IS_CONTACT(node));
 
 	message = g_strdup_printf(_("When a file-transfer request arrives from %s"), 
 					purple_contact_get_alias((PurpleContact *)node));
@@ -214,7 +214,7 @@ context_menu(PurpleBlistNode *node, GLis
 {
 	PurpleMenuAction *action;
 
-	if (!PURPLE_BLIST_NODE_IS_BUDDY(node) && !PURPLE_BLIST_NODE_IS_CONTACT(node) &&
+	if (!PURPLE_IS_BUDDY(node) && !PURPLE_IS_CONTACT(node) &&
 		!(purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE))
 		return;
 
============================================================
--- libpurple/plugins/signals-test.c	18a6e8255198e05224d59a86aea07335fdce3b79
+++ libpurple/plugins/signals-test.c	14d9f836c3147e9a03fd25adc7d272fda71c64e5
@@ -139,12 +139,12 @@ blist_node_added_cb(PurpleBlistNode *bno
 blist_node_added_cb(PurpleBlistNode *bnode, void *data)
 {
 	const char *name;
-	if (PURPLE_BLIST_NODE_IS_GROUP(bnode))
+	if (PURPLE_IS_GROUP(bnode))
 		name = purple_group_get_name(PURPLE_GROUP(bnode));
-	else if (PURPLE_BLIST_NODE_IS_CONTACT(bnode))
+	else if (PURPLE_IS_CONTACT(bnode))
 		/* Close enough */
 		name = purple_contact_get_alias(PURPLE_CONTACT(bnode));
-	else if (PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+	else if (PURPLE_IS_BUDDY(bnode))
 		name = purple_buddy_get_name(PURPLE_BUDDY(bnode));
 	else
 		name = "(unknown)";
@@ -157,12 +157,12 @@ blist_node_removed_cb(PurpleBlistNode *b
 blist_node_removed_cb(PurpleBlistNode *bnode, void *data)
 {
 	const char *name;
-	if (PURPLE_BLIST_NODE_IS_GROUP(bnode))
+	if (PURPLE_IS_GROUP(bnode))
 		name = purple_group_get_name(PURPLE_GROUP(bnode));
-	else if (PURPLE_BLIST_NODE_IS_CONTACT(bnode))
+	else if (PURPLE_IS_CONTACT(bnode))
 		/* Close enough */
 		name = purple_contact_get_alias(PURPLE_CONTACT(bnode));
-	else if (PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+	else if (PURPLE_IS_BUDDY(bnode))
 		name = purple_buddy_get_name(PURPLE_BUDDY(bnode));
 	else
 		name = "(unknown)";
@@ -179,26 +179,22 @@ blist_node_aliased(PurpleBlistNode *node
 	PurpleChat *c = (PurpleChat *)node;
 	PurpleGroup *g = (PurpleGroup *)node;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		purple_debug_misc("signals test",
 		                  "blist-node-aliased (Contact: %s, %s)\n",
 		                  purple_contact_get_alias(p), old_alias);
-	} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_BUDDY(node)) {
 		purple_debug_misc("signals test",
 		                  "blist-node-aliased (Buddy: %s, %s)\n",
 		                  purple_buddy_get_name(b), old_alias);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		purple_debug_misc("signals test",
 		                  "blist-node-aliased (Chat: %s, %s)\n",
 		                  purple_chat_get_name(c), old_alias);
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		purple_debug_misc("signals test",
 		                  "blist-node-aliased (Group: %s, %s)\n",
 		                  purple_group_get_name(g), old_alias);
-	} else {
-		purple_debug_misc("signals test",
-		                  "blist-node-aliased (UNKNOWN: %d, %s)\n",
-		                  purple_blist_node_get_type(node), old_alias);
 	}
 }
 
@@ -210,26 +206,22 @@ blist_node_extended_menu_cb(PurpleBlistN
 	PurpleChat *c = (PurpleChat *)node;
 	PurpleGroup *g = (PurpleGroup *)node;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		purple_debug_misc("signals test",
 		                  "blist-node-extended-menu (Contact: %s)\n",
 		                  purple_contact_get_alias(p));
-	} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_BUDDY(node)) {
 		purple_debug_misc("signals test",
 		                  "blist-node-extended-menu (Buddy: %s)\n",
 		                  purple_buddy_get_name(b));
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		purple_debug_misc("signals test",
 		                  "blist-node-extended-menu (Chat: %s)\n",
 		                  purple_chat_get_name(c));
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		purple_debug_misc("signals test",
 		                  "blist-node-extended-menu (Group: %s)\n",
 		                  purple_group_get_name(g));
-	} else {
-		purple_debug_misc("signals test",
-		                  "blist-node-extended-menu (UNKNOWN: %d)\n",
-		                  purple_blist_node_get_type(node));
 	}
 }
 
============================================================
--- libpurple/protocols/bonjour/bonjour.c	f96f81a05782254d929a4e503fcc6f82be5890e5
+++ libpurple/protocols/bonjour/bonjour.c	7f1efe1bddffad9fb010a6131afe74e92b96fffd
@@ -61,11 +61,11 @@ bonjour_removeallfromlocal(PurpleConnect
 	/* Go through and remove all buddies that belong to this account */
 	for (cnode = purple_blist_node_get_first_child((PurpleBlistNode *) bonjour_group); cnode; cnode = cnodenext) {
 		cnodenext = purple_blist_node_get_sibling_next(cnode);
-		if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
+		if (!PURPLE_IS_CONTACT(cnode))
 			continue;
 		for (bnode = purple_blist_node_get_first_child(cnode); bnode; bnode = bnodenext) {
 			bnodenext = purple_blist_node_get_sibling_next(bnode);
-			if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+			if (!PURPLE_IS_BUDDY(bnode))
 				continue;
 			buddy = (PurpleBuddy *) bnode;
 			if (purple_buddy_get_account(buddy) != account)
============================================================
--- libpurple/protocols/gg/gg.c	e74d60055877ba5e305d90a1a2cd1ee13d0565c8
+++ libpurple/protocols/gg/gg.c	2f5b7a796d49b60240ba1aa2d6ff12b2f2dd8ab7
@@ -1718,7 +1718,7 @@ static GList *ggp_blist_node_menu(Purple
 	PurpleAccount *account;
 	GGPInfo *info;
 
-	if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (!PURPLE_IS_BUDDY(node))
 		return NULL;
 
 	account = purple_buddy_get_account((PurpleBuddy *) node);
============================================================
--- libpurple/protocols/jabber/adhoccommands.c	d79ec7702525db6d919fdc543d7674965988dc72
+++ libpurple/protocols/jabber/adhoccommands.c	e3d8f723d13aac42a39ac1645ebd9c10b68d3b69
@@ -221,7 +221,7 @@ void jabber_adhoc_execute_action(PurpleB
 }
 
 void jabber_adhoc_execute_action(PurpleBlistNode *node, gpointer data) {
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_BUDDY(node)) {
 		JabberAdHocCommands *cmd = data;
 		PurpleBuddy *buddy = (PurpleBuddy *) node;
 		PurpleAccount *account = purple_buddy_get_account(buddy);
============================================================
--- libpurple/protocols/jabber/buddy.c	e18878651b5eace66736eb30e7ea2a8370c2b9fc
+++ libpurple/protocols/jabber/buddy.c	e1e6e57fbfc0f3a6c276f96ca1f00619249129c9
@@ -1818,7 +1818,7 @@ static void jabber_buddy_make_invisible(
 	PurpleConnection *gc;
 	JabberStream *js;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -1833,7 +1833,7 @@ static void jabber_buddy_make_visible(Pu
 	PurpleConnection *gc;
 	JabberStream *js;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -1849,7 +1849,7 @@ static void jabber_buddy_cancel_presence
 	PurpleConnection *gc;
 	JabberStream *js;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -1865,7 +1865,7 @@ static void jabber_buddy_rerequest_auth(
 	PurpleConnection *gc;
 	JabberStream *js;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -1881,7 +1881,7 @@ static void jabber_buddy_unsubscribe(Pur
 	PurpleConnection *gc;
 	JabberStream *js;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -1891,7 +1891,7 @@ static void jabber_buddy_login(PurpleBli
 }
 
 static void jabber_buddy_login(PurpleBlistNode *node, gpointer data) {
-	if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if(PURPLE_IS_BUDDY(node)) {
 		/* simply create a directed presence of the current status */
 		PurpleBuddy *buddy = (PurpleBuddy *) node;
 		PurpleConnection *gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -1917,7 +1917,7 @@ static void jabber_buddy_logout(PurpleBl
 }
 
 static void jabber_buddy_logout(PurpleBlistNode *node, gpointer data) {
-	if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if(PURPLE_IS_BUDDY(node)) {
 		/* simply create a directed unavailable presence */
 		PurpleBuddy *buddy = (PurpleBuddy *) node;
 		PurpleConnection *gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -2023,7 +2023,7 @@ jabber_blist_node_menu(PurpleBlistNode *
 GList *
 jabber_blist_node_menu(PurpleBlistNode *node)
 {
-	if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if(PURPLE_IS_BUDDY(node)) {
 		return jabber_buddy_menu((PurpleBuddy *) node);
 	} else {
 		return NULL;
============================================================
--- libpurple/protocols/jabber/jabber.c	bc48ea518e3d0bc1a27c5b924cf5a476703c9fae
+++ libpurple/protocols/jabber/jabber.c	1d95dbfa80c63626aeaba11a85a7769a7f9a1e65
@@ -2383,7 +2383,7 @@ PurpleChat *jabber_find_blist_chat(Purpl
 			PurpleChat *chat = (PurpleChat*)cnode;
 			const char *room, *server;
 			GHashTable *components;
-			if(!PURPLE_BLIST_NODE_IS_CHAT(cnode))
+			if(!PURPLE_IS_CHAT(cnode))
 				continue;
 
 			if (purple_chat_get_account(chat) != account)
============================================================
--- libpurple/protocols/msn/msn.c	e3214a7bca23c79a9168454da30ecda06230578b
+++ libpurple/protocols/msn/msn.c	fe32d167a71657829be83ba62348e4e9ee08b144
@@ -460,7 +460,7 @@ show_send_to_mobile_cb(PurpleBlistNode *
 	PurpleAccount *account;
 	const char *name;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	account = purple_buddy_get_account(buddy);
@@ -516,7 +516,7 @@ initiate_chat_cb(PurpleBlistNode *node, 
 
 	const char *alias;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	account = purple_buddy_get_account(buddy);
@@ -971,7 +971,7 @@ msn_blist_node_menu(PurpleBlistNode *nod
 static GList *
 msn_blist_node_menu(PurpleBlistNode *node)
 {
-	if(PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if(PURPLE_IS_BUDDY(node))
 	{
 		return msn_buddy_menu((PurpleBuddy *) node);
 	}
============================================================
--- libpurple/protocols/myspace/zap.c	df1a2faf8bc8a161fba1a06a2427514bb1daef54
+++ libpurple/protocols/myspace/zap.c	ec972a76086e10018a50db9a36cad5239721bfbe
@@ -163,12 +163,12 @@ msim_send_zap_from_menu(PurpleBlistNode 
 	MsimSession *session;
 	guint zap;
 
-	if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (!PURPLE_IS_BUDDY(node)) {
 		/* Only know about buddies for now. */
 		return;
 	}
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *)node;
 
@@ -191,7 +191,7 @@ msim_blist_node_menu(PurpleBlistNode *no
 	PurpleMenuAction *act;
 	guint i;
 
-	if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (!PURPLE_IS_BUDDY(node)) {
 		/* Only know about buddies for now. */
 		return NULL;
 	}
============================================================
--- libpurple/protocols/novell/novell.c	7a66d3f5942e4d990aff229bd6df6cd02deb81fc
+++ libpurple/protocols/novell/novell.c	856a4284a0ca45167ec57a597098bd586199ac7d
@@ -1239,19 +1239,19 @@ _remove_purple_buddies(NMUser *user)
 
 	for (gnode = purple_blist_get_root(); gnode;
 			gnode = purple_blist_node_get_sibling_next(gnode)) {
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
+		if (!PURPLE_IS_GROUP(gnode))
 			continue;
 		group = (PurpleGroup *) gnode;
 		gname = purple_group_get_name(group);
 		for (cnode = purple_blist_node_get_first_child(gnode);
 				cnode;
 				cnode = purple_blist_node_get_sibling_next(cnode)) {
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
+			if (!PURPLE_IS_CONTACT(cnode))
 				continue;
 			for (bnode = purple_blist_node_get_first_child(cnode);
 					bnode;
 					bnode = purple_blist_node_get_sibling_next(bnode)) {
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+				if (!PURPLE_IS_BUDDY(bnode))
 					continue;
 				buddy = (PurpleBuddy *) bnode;
 				if (purple_buddy_get_account(buddy) == user->client_data) {
@@ -1614,7 +1614,7 @@ _initiate_conference_cb(PurpleBlistNode 
 	NMUserRecord *user_record;
 	NMConference *conference;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -3434,7 +3434,7 @@ novell_blist_node_menu(PurpleBlistNode *
 	GList *list = NULL;
 	PurpleMenuAction *act;
 
-	if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if(PURPLE_IS_BUDDY(node)) {
 		act = purple_menu_action_new(_("Initiate _Chat"),
 		                           PURPLE_CALLBACK(_initiate_conference_cb),
 		                           NULL, NULL);
============================================================
--- libpurple/protocols/oscar/oscar.c	e04dc2dad0932f6996a62cac16f4cb8404267e89
+++ libpurple/protocols/oscar/oscar.c	5a32e8f625c3275d2ee154f7f7d481cb92bb8492
@@ -2591,7 +2591,7 @@ purple_auth_sendrequest_menu(PurpleBlist
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -6219,7 +6219,7 @@ static void oscar_buddycb_edit_comment(P
 	PurpleAccount *account;
 	const char *name;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	name = purple_buddy_get_name(buddy);
@@ -6280,7 +6280,7 @@ oscar_ask_directim(gpointer object, gpoi
 
 	node = object;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *)node;
 	account = purple_buddy_get_account(buddy);
@@ -6310,7 +6310,7 @@ oscar_get_aim_info_cb(PurpleBlistNode *n
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *)node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -6405,7 +6405,7 @@ GList *oscar_blist_node_menu(PurpleBlist
 
 
 GList *oscar_blist_node_menu(PurpleBlistNode *node) {
-	if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if(PURPLE_IS_BUDDY(node)) {
 		return oscar_buddy_menu((PurpleBuddy *) node);
 	} else {
 		return NULL;
============================================================
--- libpurple/protocols/qq/group_internal.c	1a33119ce8a211f23c31da72157e29a791b0a98d
+++ libpurple/protocols/qq/group_internal.c	f909fad4110cfe31acdba3a6b0aaf1b5bdd84243
@@ -397,7 +397,7 @@ void qq_room_data_initial(PurpleConnecti
 	     node != NULL;
 		 node = purple_blist_node_get_sibling_next(node))
 	{
-		if ( !PURPLE_BLIST_NODE_IS_CHAT(node)) {
+		if ( !PURPLE_IS_CHAT(node)) {
 			continue;
 		}
 		/* got one */
============================================================
--- libpurple/protocols/qq/qq.c	22c8003cc58f0f407fa2c4237b75cbc5d26e60db
+++ libpurple/protocols/qq/qq.c	bd9d768d774f84d6019ca4b873762a5883df3123
@@ -729,7 +729,7 @@ static void action_chat_quit(PurpleBlist
 	gchar *num_str;
 	guint32 room_id;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	g_return_if_fail(components != NULL);
 
@@ -749,7 +749,7 @@ static void action_chat_get_info(PurpleB
 	gchar *num_str;
 	guint32 room_id;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	g_return_if_fail(components != NULL);
 
@@ -769,7 +769,7 @@ static void _qq_menu_send_file(PurpleBli
 	PurpleConnection *gc;
 	qq_buddy_data *bd;
 
-	g_return_if_fail (PURPLE_BLIST_NODE_IS_BUDDY (node));
+	g_return_if_fail (PURPLE_IS_BUDDY (node));
 	buddy = (PurpleBuddy *) node;
 	bd = (qq_buddy_data *) purple_object_get_protocol_data(PURPLE_OBJECT(buddy));
 	/*	if (is_online (bd->status)) { */
@@ -829,7 +829,7 @@ static void qq_add_buddy_from_menu_cb(Pu
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -844,7 +844,7 @@ static void qq_modify_buddy_memo_from_me
 	PurpleConnection *gc;
 	guint32 bd_uid;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *)node;
 	g_return_if_fail(NULL != buddy);
@@ -911,10 +911,10 @@ static GList *qq_blist_node_menu(PurpleB
 /* buddy-related menu shown up with right-click */
 static GList *qq_blist_node_menu(PurpleBlistNode * node)
 {
-	if(PURPLE_BLIST_NODE_IS_CHAT(node))
+	if(PURPLE_IS_CHAT(node))
 		return qq_chat_menu(node);
 
-	if(PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if(PURPLE_IS_BUDDY(node))
 		return qq_buddy_menu((PurpleBuddy *) node);
 
 	return NULL;
============================================================
--- libpurple/protocols/silc/buddy.c	24bf1653bb55c72bef0bf48bdbcd73020bb1529f
+++ libpurple/protocols/silc/buddy.c	989316a58b44a0d62b3c5287da427c2232fd19c5
@@ -341,7 +341,7 @@ silcpurple_buddy_resetkey(PurpleBlistNod
         SilcPurple sg;
 	SilcDList clients;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	b = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(b));
@@ -467,7 +467,7 @@ silcpurple_buddy_privkey_menu(PurpleBlis
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -596,7 +596,7 @@ silcpurple_buddy_getkey_menu(PurpleBlist
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -613,7 +613,7 @@ silcpurple_buddy_showkey(PurpleBlistNode
 	SilcPublicKey public_key;
 	const char *pkfile;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	b = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(b));
@@ -1606,7 +1606,7 @@ silcpurple_buddy_kill(PurpleBlistNode *n
 	PurpleConnection *gc;
 	SilcPurple sg;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	b = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(b));
============================================================
--- libpurple/protocols/silc/chat.c	9ef549e8ec7229ddaeeaa290327a04d41c97d716
+++ libpurple/protocols/silc/chat.c	4ecba598a8587655749d569f79225e177d31628c
@@ -495,7 +495,7 @@ silcpurple_chat_chauth(PurpleBlistNode *
 	PurpleConnection *gc;
 	SilcPurple sg;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -582,7 +582,7 @@ silcpurple_chat_prv(PurpleBlistNode *nod
 	PurpleRequestField *f;
 	char tmp[512];
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -632,7 +632,7 @@ silcpurple_chat_permanent_reset(PurpleBl
 	PurpleConnection *gc;
 	SilcPurple sg;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -651,7 +651,7 @@ silcpurple_chat_permanent(PurpleBlistNod
 	SilcPurple sg;
 	const char *channel;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -728,7 +728,7 @@ silcpurple_chat_ulimit(PurpleBlistNode *
 	char *ch;
 	char tmp[32];
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -763,7 +763,7 @@ silcpurple_chat_resettopic(PurpleBlistNo
 	PurpleConnection *gc;
 	SilcPurple sg;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -781,7 +781,7 @@ silcpurple_chat_settopic(PurpleBlistNode
 	PurpleConnection *gc;
 	SilcPurple sg;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -799,7 +799,7 @@ silcpurple_chat_resetprivate(PurpleBlist
 	PurpleConnection *gc;
 	SilcPurple sg;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -817,7 +817,7 @@ silcpurple_chat_setprivate(PurpleBlistNo
 	PurpleConnection *gc;
 	SilcPurple sg;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -835,7 +835,7 @@ silcpurple_chat_resetsecret(PurpleBlistN
 	PurpleConnection *gc;
 	SilcPurple sg;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
@@ -853,7 +853,7 @@ silcpurple_chat_setsecret(PurpleBlistNod
 	PurpleConnection *gc;
 	SilcPurple sg;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	chat = (PurpleChat *) node;
 	gc = purple_account_get_connection(purple_chat_get_account(chat));
============================================================
--- libpurple/protocols/silc/silc.c	ee7a523e42c37492fcddb87219b95974f14c63cb
+++ libpurple/protocols/silc/silc.c	702fd3e728a90bf00a21f27814476d338a29f7ae
@@ -1522,9 +1522,9 @@ static GList *silcpurple_blist_node_menu
 static GList *silcpurple_blist_node_menu(PurpleBlistNode *node) {
 	/* split this single menu building function back into the two
 	   original: one for buddies and one for chats */
-	if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	if(PURPLE_IS_CHAT(node)) {
 		return silcpurple_chat_menu((PurpleChat *) node);
-	} else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if(PURPLE_IS_BUDDY(node)) {
 		return silcpurple_buddy_menu((PurpleBuddy *) node);
 	} else {
 		g_return_val_if_reached(NULL);
============================================================
--- libpurple/protocols/yahoo/yahoo.c	5f1fc1df991ae70194e0a2a319c81ece6af52d18
+++ libpurple/protocols/yahoo/yahoo.c	1c129c05aac24927d3f185a6835061478773c075
@@ -3579,7 +3579,7 @@ static void yahoo_initiate_conference(Pu
 	struct yahoo_data *yd;
 	int id;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -3620,7 +3620,7 @@ static void yahoo_game(PurpleBlistNode *
 	char url[256];
 	YahooFriend *f;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -3731,7 +3731,7 @@ static void yahoo_addbuddyfrommenu_cb(Pu
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -3745,7 +3745,7 @@ static void yahoo_chat_goto_menu(PurpleB
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	buddy = (PurpleBuddy *) node;
 	gc = purple_account_get_connection(purple_buddy_get_account(buddy));
@@ -3875,7 +3875,7 @@ static GList *yahoo_blist_node_menu(Purp
 
 static GList *yahoo_blist_node_menu(PurpleBlistNode *node)
 {
-	if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if(PURPLE_IS_BUDDY(node)) {
 		return yahoo_buddy_menu((PurpleBuddy *) node);
 	} else {
 		return NULL;
============================================================
--- libpurple/protocols/zephyr/zephyr.c	3fa8719d361da2bfb2563b72ab39af16dfeb6b3c
+++ libpurple/protocols/zephyr/zephyr.c	5704ab6921232188516084fb8a611293da8a8317
@@ -2493,7 +2493,7 @@ static PurpleChat *zephyr_find_blist_cha
 			char *zclass, *inst, *recip;
 			char** triple;
 			GHashTable *components;
-			if(!PURPLE_BLIST_NODE_IS_CHAT(cnode))
+			if(!PURPLE_IS_CHAT(cnode))
 				continue;
 			if(purple_chat_get_account(chat) != account)
 				continue;
============================================================
--- pidgin/gtkblist.c	c5197b43c71a9509252e22bdbe94a1e6412fb8c6
+++ pidgin/gtkblist.c	8c36e7b835f1342654e7292c3daef900378c425e
@@ -460,17 +460,13 @@ static void gtk_blist_renderer_editing_s
 	gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
 	node = g_value_get_pointer(&val);
 
-	switch (purple_blist_node_get_type(node)) {
-	case PURPLE_BLIST_CONTACT_NODE:
+	if (PURPLE_IS_CONTACT(node)){
 		text = purple_contact_get_alias(PURPLE_CONTACT(node));
-		break;
-	case PURPLE_BLIST_BUDDY_NODE:
+	} else if (PURPLE_IS_BUDDY(node)){
 		text = purple_buddy_get_alias(PURPLE_BUDDY(node));
-		break;
-	case PURPLE_BLIST_GROUP_NODE:
+	} else if (PURPLE_IS_GROUP(node)) {
 		text = purple_group_get_name(PURPLE_GROUP(node));
-		break;
-	default:
+	} else {
 		g_return_if_reached();
 	}
 
@@ -496,15 +492,12 @@ gtk_blist_do_personize(GList *merges)
 	for (tmp = merges; tmp; tmp = tmp->next) {
 		PurpleBlistNode *node = tmp->data;
 		PurpleBlistNode *b;
-		PurpleBlistNodeType type;
 		int i = 0;
 
-		type = purple_blist_node_get_type(node);
-
-		if(type == PURPLE_BLIST_BUDDY_NODE)
+		if(PURPLE_IS_BUDDY(node))
 			node = purple_blist_node_get_parent(node);
 
-		if(type == PURPLE_BLIST_CONTACT_NODE)
+		if(PURPLE_IS_CONTACT(node))
 			continue;
 
 		for (b = purple_blist_node_get_first_child(node);
@@ -526,7 +519,7 @@ gtk_blist_do_personize(GList *merges)
 	/* Merge all those buddies into this contact */
 	for (tmp = merges; tmp; tmp = tmp->next) {
 		PurpleBlistNode *node = tmp->data;
-		if (purple_blist_node_get_type(node) == PURPLE_BLIST_BUDDY_NODE)
+		if (PURPLE_IS_BUDDY(node))
 			node = purple_blist_node_get_parent(node);
 
 		if (node == contact)
@@ -553,7 +546,7 @@ gtk_blist_auto_personize(PurpleBlistNode
 	     contact != NULL;
 	     contact = purple_blist_node_get_sibling_next(contact)) {
 		char *node_alias;
-		if (purple_blist_node_get_type(contact) != PURPLE_BLIST_CONTACT_NODE)
+		if (!PURPLE_IS_CONTACT(contact))
 			continue;
 
 		node_alias = g_utf8_casefold(purple_contact_get_alias((PurpleContact *)contact), -1);
@@ -569,7 +562,7 @@ gtk_blist_auto_personize(PurpleBlistNode
 		     buddy;
 		     buddy = purple_blist_node_get_sibling_next(buddy))
 		{
-			if (purple_blist_node_get_type(buddy) != PURPLE_BLIST_BUDDY_NODE)
+			if (!PURPLE_IS_BUDDY(buddy))
 				continue;
 
 			node_alias = g_utf8_casefold(purple_buddy_get_alias(PURPLE_BUDDY(buddy)), -1);
@@ -614,48 +607,35 @@ static void gtk_blist_renderer_edited_cb
 	gtk_tree_view_set_enable_search (GTK_TREE_VIEW(gtkblist->treeview), TRUE);
 	g_object_set(G_OBJECT(gtkblist->text_rend), "editable", FALSE, NULL);
 
-	switch (purple_blist_node_get_type(node))
-	{
-		case PURPLE_BLIST_CONTACT_NODE:
-			{
-				PurpleContact *contact = PURPLE_CONTACT(node);
-				struct _pidgin_blist_node *gtknode =
-					(struct _pidgin_blist_node *)purple_blist_node_get_ui_data(node);
+	if (PURPLE_IS_CONTACT(node)) {
+		PurpleContact *contact = PURPLE_CONTACT(node);
+		struct _pidgin_blist_node *gtknode =
+			(struct _pidgin_blist_node *)purple_blist_node_get_ui_data(node);
 
-				if (purple_contact_get_alias(contact) || gtknode->contact_expanded) {
-					purple_blist_alias_contact(contact, arg2);
-					gtk_blist_auto_personize(purple_blist_node_get_parent(node), arg2);
-				} else {
-					PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact);
-					purple_blist_alias_buddy(buddy, arg2);
-					serv_alias_buddy(buddy);
-					gtk_blist_auto_personize(purple_blist_node_get_parent(node), arg2);
-				}
-			}
-			break;
+		if (purple_contact_get_alias(contact) || gtknode->contact_expanded) {
+			purple_blist_alias_contact(contact, arg2);
+			gtk_blist_auto_personize(purple_blist_node_get_parent(node), arg2);
+		} else {
+			PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact);
+			purple_blist_alias_buddy(buddy, arg2);
+			serv_alias_buddy(buddy);
+			gtk_blist_auto_personize(purple_blist_node_get_parent(node), arg2);
+		}
+	} else if(PURPLE_IS_BUDDY(node)){
+		PurpleGroup *group = purple_buddy_get_group(PURPLE_BUDDY(node));
 
-		case PURPLE_BLIST_BUDDY_NODE:
-			{
-				PurpleGroup *group = purple_buddy_get_group(PURPLE_BUDDY(node));
-
-				purple_blist_alias_buddy(PURPLE_BUDDY(node), arg2);
-				serv_alias_buddy(PURPLE_BUDDY(node));
-				gtk_blist_auto_personize(PURPLE_BLIST_NODE(group), arg2);
-			}
-			break;
-		case PURPLE_BLIST_GROUP_NODE:
-			dest = purple_find_group(arg2);
-			if (dest != NULL && purple_utf8_strcasecmp(arg2, purple_group_get_name(PURPLE_GROUP(node)))) {
-				pidgin_dialogs_merge_groups(PURPLE_GROUP(node), arg2);
-			} else {
-				purple_blist_rename_group(PURPLE_GROUP(node), arg2);
-			}
-			break;
-		case PURPLE_BLIST_CHAT_NODE:
-			purple_blist_alias_chat(PURPLE_CHAT(node), arg2);
-			break;
-		default:
-			break;
+		purple_blist_alias_buddy(PURPLE_BUDDY(node), arg2);
+		serv_alias_buddy(PURPLE_BUDDY(node));
+		gtk_blist_auto_personize(PURPLE_BLIST_NODE(group), arg2);
+	} else if (PURPLE_IS_GROUP(node)){
+		dest = purple_find_group(arg2);
+		if (dest != NULL && purple_utf8_strcasecmp(arg2, purple_group_get_name(PURPLE_GROUP(node)))) {
+			pidgin_dialogs_merge_groups(PURPLE_GROUP(node), arg2);
+		} else {
+			purple_blist_rename_group(PURPLE_GROUP(node), arg2);
+		}
+	} else if(PURPLE_IS_CHAT(node)) {
+		purple_blist_alias_chat(PURPLE_CHAT(node), arg2);
 	}
 	pidgin_blist_refresh(list);
 }
@@ -774,12 +754,12 @@ static void gtk_blist_menu_showlog_cb(Gt
 
 	pidgin_set_cursor(gtkblist->window, GDK_WATCH);
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_BUDDY(node)) {
 		PurpleBuddy *b = (PurpleBuddy*) node;
 		type = PURPLE_LOG_IM;
 		name = g_strdup(purple_buddy_get_name(b));
 		account = purple_buddy_get_account(b);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		PurpleChat *c = PURPLE_CHAT(node);
 		PurplePluginProtocolInfo *prpl_info = NULL;
 		type = PURPLE_LOG_CHAT;
@@ -788,7 +768,7 @@ static void gtk_blist_menu_showlog_cb(Gt
 		if (prpl_info && prpl_info->get_chat_name) {
 			name = prpl_info->get_chat_name(purple_chat_get_components(c));
 		}
-	} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	} else if (PURPLE_IS_CONTACT(node)) {
 		pidgin_log_show_contact(PURPLE_CONTACT(node));
 		pidgin_clear_cursor(gtkblist->window);
 		return;
@@ -810,13 +790,13 @@ static void gtk_blist_menu_showoffline_c
 
 static void gtk_blist_menu_showoffline_cb(GtkWidget *w, PurpleBlistNode *node)
 {
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (PURPLE_IS_BUDDY(node))
 	{
 		purple_blist_node_set_bool(node, "show_offline",
 		                           !purple_blist_node_get_bool(node, "show_offline"));
 		pidgin_blist_update(purple_get_blist(), node);
 	}
-	else if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	else if (PURPLE_IS_CONTACT(node))
 	{
 		PurpleBlistNode *bnode;
 		gboolean setting = !purple_blist_node_get_bool(node, "show_offline");
@@ -829,7 +809,7 @@ static void gtk_blist_menu_showoffline_c
 			purple_blist_node_set_bool(bnode, "show_offline", setting);
 			pidgin_blist_update(purple_get_blist(), bnode);
 		}
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		PurpleBlistNode *cnode, *bnode;
 		gboolean setting = !purple_blist_node_get_bool(node, "show_offline");
 
@@ -1186,7 +1166,7 @@ static void gtk_blist_row_expanded_cb(Gt
 
 	node = g_value_get_pointer(&val);
 
-	if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	if (PURPLE_IS_GROUP(node)) {
 		char *title;
 
 		title = pidgin_get_group_title(node, TRUE);
@@ -1212,7 +1192,7 @@ static void gtk_blist_row_collapsed_cb(G
 
 	node = g_value_get_pointer(&val);
 
-	if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	if (PURPLE_IS_GROUP(node)) {
 		char *title;
 		struct _pidgin_blist_node *gtknode;
 		PurpleBlistNode *cnode;
@@ -1228,7 +1208,7 @@ static void gtk_blist_row_collapsed_cb(G
 		purple_blist_node_set_bool(node, "collapsed", TRUE);
 
 		for(cnode = node->child; cnode; cnode = cnode->next) {
-			if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+			if (PURPLE_IS_CONTACT(cnode)) {
 				gtknode = cnode->ui_data;
 				if (!gtknode->contact_expanded)
 					continue;
@@ -1237,7 +1217,7 @@ static void gtk_blist_row_collapsed_cb(G
 			}
 		}
 		pidgin_blist_tooltip_destroy();
-	} else if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	} else if(PURPLE_IS_CONTACT(node)) {
 		pidgin_blist_collapse_contact_cb(NULL, node);
 	}
 }
@@ -1253,18 +1233,18 @@ static void gtk_blist_row_activated_cb(G
 	gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
 	node = g_value_get_pointer(&val);
 
-	if(PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if(PURPLE_IS_CONTACT(node) || PURPLE_IS_BUDDY(node)) {
 		PurpleBuddy *buddy;
 
-		if(PURPLE_BLIST_NODE_IS_CONTACT(node))
+		if(PURPLE_IS_CONTACT(node))
 			buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
 		else
 			buddy = (PurpleBuddy*)node;
 
 		pidgin_dialogs_im_with_user(buddy->account, buddy->name);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		gtk_blist_join_chat((PurpleChat *)node);
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 /*		if (gtk_tree_view_row_expanded(tv, path))
 			gtk_tree_view_collapse_row(tv, path);
 		else
@@ -1280,11 +1260,11 @@ static void pidgin_blist_add_chat_cb(voi
 
 	if(gtk_tree_selection_get_selected(sel, NULL, &iter)){
 		gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
-		if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+		if (PURPLE_IS_BUDDY(node))
 			purple_blist_request_add_chat(NULL, (PurpleGroup*)node->parent->parent, NULL, NULL);
-		if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node))
+		if (PURPLE_IS_CONTACT(node) || PURPLE_IS_CHAT(node))
 			purple_blist_request_add_chat(NULL, (PurpleGroup*)node->parent, NULL, NULL);
-		else if (PURPLE_BLIST_NODE_IS_GROUP(node))
+		else if (PURPLE_IS_GROUP(node))
 			purple_blist_request_add_chat(NULL, (PurpleGroup*)node, NULL, NULL);
 	}
 	else {
@@ -1300,13 +1280,13 @@ static void pidgin_blist_add_buddy_cb(vo
 
 	if(gtk_tree_selection_get_selected(sel, NULL, &iter)){
 		gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &node, -1);
-		if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+		if (PURPLE_IS_BUDDY(node)) {
 			purple_blist_request_add_buddy(NULL, NULL, ((PurpleGroup*)node->parent->parent)->name,
 					NULL);
-		} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)
-				|| PURPLE_BLIST_NODE_IS_CHAT(node)) {
+		} else if (PURPLE_IS_CONTACT(node)
+				|| PURPLE_IS_CHAT(node)) {
 			purple_blist_request_add_buddy(NULL, NULL, ((PurpleGroup*)node->parent)->name, NULL);
-		} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+		} else if (PURPLE_IS_GROUP(node)) {
 			purple_blist_request_add_buddy(NULL, NULL, ((PurpleGroup*)node)->name, NULL);
 		}
 	}
@@ -1318,13 +1298,13 @@ pidgin_blist_remove_cb (GtkWidget *w, Pu
 static void
 pidgin_blist_remove_cb (GtkWidget *w, PurpleBlistNode *node)
 {
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_BUDDY(node)) {
 		pidgin_dialogs_remove_buddy((PurpleBuddy*)node);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		pidgin_dialogs_remove_chat((PurpleChat*)node);
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		pidgin_dialogs_remove_group((PurpleGroup*)node);
-	} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	} else if (PURPLE_IS_CONTACT(node)) {
 		pidgin_dialogs_remove_contact((PurpleContact*)node);
 	}
 }
@@ -1356,7 +1336,7 @@ pidgin_blist_expand_contact_cb(GtkWidget
 	PurpleBlistNode *bnode;
 	GtkTreePath *path;
 
-	if(!PURPLE_BLIST_NODE_IS_CONTACT(node))
+	if(!PURPLE_IS_CONTACT(node))
 		return;
 
 	gtknode = (struct _pidgin_blist_node *)node->ui_data;
@@ -1389,7 +1369,7 @@ pidgin_blist_collapse_contact_cb(GtkWidg
 	PurpleBlistNode *bnode;
 	struct _pidgin_blist_node *gtknode;
 
-	if(!PURPLE_BLIST_NODE_IS_CONTACT(node))
+	if(!PURPLE_IS_CONTACT(node))
 		return;
 
 	gtknode = (struct _pidgin_blist_node *)node->ui_data;
@@ -1409,7 +1389,7 @@ toggle_privacy(GtkWidget *widget, Purple
 	gboolean permitted;
 	const char *name;
 
-	if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (!PURPLE_IS_BUDDY(node))
 		return;
 
 	buddy = (PurpleBuddy *)node;
@@ -1488,7 +1468,7 @@ pidgin_append_blist_node_move_to_menu(Gt
 	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
 
 	for (group = purple_blist_get_root(); group; group = group->next) {
-		if (group->type != PURPLE_BLIST_GROUP_NODE)
+		if (!PURPLE_IS_GROUP(group))
 			continue;
 		if (group == node->parent)
 			continue;
@@ -1628,9 +1608,9 @@ gtk_blist_key_press_cb(GtkWidget *tv, Gd
 			(event->keyval == 'o' || event->keyval == 'O')) {
 		PurpleBuddy *buddy;
 
-		if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+		if(PURPLE_IS_CONTACT(node)) {
 			buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
-		} else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+		} else if(PURPLE_IS_BUDDY(node)) {
 			buddy = (PurpleBuddy*)node;
 		} else {
 			return FALSE;
@@ -1669,11 +1649,11 @@ gtk_blist_key_press_cb(GtkWidget *tv, Gd
 				path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
 				if (!gtk_tree_view_row_expanded(GTK_TREE_VIEW(tv), path)) {
 					/* Expand the Group */
-					if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+					if (PURPLE_IS_CONTACT(node)) {
 						pidgin_blist_expand_contact_cb(NULL, node);
 						gtk_tree_path_free(path);
 						return TRUE;
-					} else if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+					} else if (!PURPLE_IS_BUDDY(node)) {
 						gtk_tree_view_expand_row(GTK_TREE_VIEW(tv), path, FALSE);
 						gtk_tree_path_free(path);
 						return TRUE;
@@ -1848,7 +1828,7 @@ create_buddy_menu(PurpleBlistNode *node,
 	menu = gtk_menu_new();
 	pidgin_blist_make_buddy_menu(menu, b, FALSE);
 
-	if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if(PURPLE_IS_CONTACT(node)) {
 		pidgin_separator(menu);
 
 		add_buddy_icon_menu_items(menu, node);
@@ -1915,20 +1895,20 @@ pidgin_blist_show_context_menu(PurpleBli
 	gtknode = (struct _pidgin_blist_node *)node->ui_data;
 
 	/* Create a menu based on the thing we right-clicked on */
-	if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	if (PURPLE_IS_GROUP(node)) {
 		PurpleGroup *g = (PurpleGroup *)node;
 
 		menu = create_group_menu(node, g);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		PurpleChat *c = (PurpleChat *)node;
 
 		menu = create_chat_menu(node, c);
-	} else if ((PURPLE_BLIST_NODE_IS_CONTACT(node)) && (gtknode->contact_expanded)) {
+	} else if ((PURPLE_IS_CONTACT(node)) && (gtknode->contact_expanded)) {
 		menu = create_contact_menu(node);
-	} else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_CONTACT(node) || PURPLE_IS_BUDDY(node)) {
 		PurpleBuddy *b;
 
-		if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+		if (PURPLE_IS_CONTACT(node))
 			b = purple_contact_get_priority_buddy((PurpleContact*)node);
 		else
 			b = (PurpleBuddy *)node;
@@ -1986,7 +1966,7 @@ gtk_blist_button_press_cb(GtkWidget *tv,
 
 	/* CTRL+middle click expands or collapse a contact */
 	} else if ((event->button == 2) && (event->type == GDK_BUTTON_PRESS) &&
-			   (event->state & GDK_CONTROL_MASK) && (PURPLE_BLIST_NODE_IS_CONTACT(node))) {
+			   (event->state & GDK_CONTROL_MASK) && (PURPLE_IS_CONTACT(node))) {
 		if (gtknode->contact_expanded)
 			pidgin_blist_collapse_contact_cb(NULL, node);
 		else
@@ -1995,9 +1975,9 @@ gtk_blist_button_press_cb(GtkWidget *tv,
 
 	/* Double middle click gets info */
 	} else if ((event->button == 2) && (event->type == GDK_2BUTTON_PRESS) &&
-			   ((PURPLE_BLIST_NODE_IS_CONTACT(node)) || (PURPLE_BLIST_NODE_IS_BUDDY(node)))) {
+			   ((PURPLE_IS_CONTACT(node)) || (PURPLE_IS_BUDDY(node)))) {
 		PurpleBuddy *b;
-		if(PURPLE_BLIST_NODE_IS_CONTACT(node))
+		if(PURPLE_IS_CONTACT(node))
 			b = purple_contact_get_priority_buddy((PurpleContact*)node);
 		else
 			b = (PurpleBuddy *)node;
@@ -2330,11 +2310,11 @@ static void pidgin_blist_drag_data_get_c
 
 		node = g_value_get_pointer(&val);
 
-		if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+		if (PURPLE_IS_CONTACT(node))
 		{
 			buddy = purple_contact_get_priority_buddy((PurpleContact *)node);
 		}
-		else if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+		else if (!PURPLE_IS_BUDDY(node))
 		{
 			gtk_tree_path_free(sourcerow);
 			return;
@@ -2411,12 +2391,12 @@ static void pidgin_blist_drag_data_rcv_c
 			node = g_value_get_pointer(&val);
 			gtknode = node->ui_data;
 
-			if (PURPLE_BLIST_NODE_IS_CONTACT(n)) {
+			if (PURPLE_IS_CONTACT(n)) {
 				PurpleContact *c = (PurpleContact*)n;
-				if (PURPLE_BLIST_NODE_IS_CONTACT(node) && gtknode->contact_expanded) {
+				if (PURPLE_IS_CONTACT(node) && gtknode->contact_expanded) {
 					purple_blist_merge_contact(c, node);
-				} else if (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
-						PURPLE_BLIST_NODE_IS_CHAT(node)) {
+				} else if (PURPLE_IS_CONTACT(node) ||
+						PURPLE_IS_CHAT(node)) {
 					switch(position) {
 						case GTK_TREE_VIEW_DROP_AFTER:
 						case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
@@ -2429,14 +2409,14 @@ static void pidgin_blist_drag_data_rcv_c
 									node->prev);
 							break;
 					}
-				} else if(PURPLE_BLIST_NODE_IS_GROUP(node)) {
+				} else if(PURPLE_IS_GROUP(node)) {
 					purple_blist_add_contact(c, (PurpleGroup*)node, NULL);
-				} else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+				} else if(PURPLE_IS_BUDDY(node)) {
 					purple_blist_merge_contact(c, node);
 				}
-			} else if (PURPLE_BLIST_NODE_IS_BUDDY(n)) {
+			} else if (PURPLE_IS_BUDDY(n)) {
 				PurpleBuddy *b = (PurpleBuddy*)n;
-				if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+				if (PURPLE_IS_BUDDY(node)) {
 					switch(position) {
 						case GTK_TREE_VIEW_DROP_AFTER:
 						case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
@@ -2450,12 +2430,12 @@ static void pidgin_blist_drag_data_rcv_c
 									node->prev);
 							break;
 					}
-				} else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
+				} else if(PURPLE_IS_CHAT(node)) {
 					purple_blist_add_buddy(b, NULL, (PurpleGroup*)node->parent,
 							NULL);
-				} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+				} else if (PURPLE_IS_GROUP(node)) {
 					purple_blist_add_buddy(b, NULL, (PurpleGroup*)node, NULL);
-				} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+				} else if (PURPLE_IS_CONTACT(node)) {
 					if(gtknode->contact_expanded) {
 						switch(position) {
 							case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
@@ -2484,9 +2464,9 @@ static void pidgin_blist_drag_data_rcv_c
 						}
 					}
 				}
-			} else if (PURPLE_BLIST_NODE_IS_CHAT(n)) {
+			} else if (PURPLE_IS_CHAT(n)) {
 				PurpleChat *chat = (PurpleChat *)n;
-				if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+				if (PURPLE_IS_BUDDY(node)) {
 					switch(position) {
 						case GTK_TREE_VIEW_DROP_AFTER:
 						case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
@@ -2497,8 +2477,8 @@ static void pidgin_blist_drag_data_rcv_c
 									node->parent);
 							break;
 					}
-				} else if(PURPLE_BLIST_NODE_IS_CONTACT(node) ||
-						PURPLE_BLIST_NODE_IS_CHAT(node)) {
+				} else if(PURPLE_IS_CONTACT(node) ||
+						PURPLE_IS_CHAT(node)) {
 					switch(position) {
 						case GTK_TREE_VIEW_DROP_AFTER:
 						case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
@@ -2509,12 +2489,12 @@ static void pidgin_blist_drag_data_rcv_c
 							purple_blist_add_chat(chat, (PurpleGroup*)node->parent, node->prev);
 							break;
 					}
-				} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+				} else if (PURPLE_IS_GROUP(node)) {
 					purple_blist_add_chat(chat, (PurpleGroup*)node, NULL);
 				}
-			} else if (PURPLE_BLIST_NODE_IS_GROUP(n)) {
+			} else if (PURPLE_IS_GROUP(n)) {
 				PurpleGroup *g = (PurpleGroup*)n;
-				if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+				if (PURPLE_IS_GROUP(node)) {
 					switch (position) {
 					case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
 					case GTK_TREE_VIEW_DROP_AFTER:
@@ -2525,10 +2505,10 @@ static void pidgin_blist_drag_data_rcv_c
 						purple_blist_add_group(g, node->prev);
 						break;
 					}
-				} else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+				} else if(PURPLE_IS_BUDDY(node)) {
 					purple_blist_add_group(g, node->parent->parent);
-				} else if(PURPLE_BLIST_NODE_IS_CONTACT(node) ||
-						PURPLE_BLIST_NODE_IS_CHAT(node)) {
+				} else if(PURPLE_IS_CONTACT(node) ||
+						PURPLE_IS_CHAT(node)) {
 					purple_blist_add_group(g, node->parent);
 				}
 			}
@@ -2562,16 +2542,16 @@ static void pidgin_blist_drag_data_rcv_c
 									  &iter, NODE_COLUMN, &val);
 			node = g_value_get_pointer(&val);
 
-			if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+			if (PURPLE_IS_BUDDY(node))
 			{
 				group = (PurpleGroup *)node->parent->parent;
 			}
-			else if (PURPLE_BLIST_NODE_IS_CHAT(node) ||
-					 PURPLE_BLIST_NODE_IS_CONTACT(node))
+			else if (PURPLE_IS_CHAT(node) ||
+					 PURPLE_IS_CONTACT(node))
 			{
 				group = (PurpleGroup *)node->parent;
 			}
-			else if (PURPLE_BLIST_NODE_IS_GROUP(node))
+			else if (PURPLE_IS_GROUP(node))
 			{
 				group = (PurpleGroup *)node;
 			}
@@ -2624,16 +2604,16 @@ static void pidgin_blist_drag_data_rcv_c
 									  &iter, NODE_COLUMN, &val);
 			node = g_value_get_pointer(&val);
 
-			if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+			if (PURPLE_IS_BUDDY(node))
 			{
 				group = (PurpleGroup *)node->parent->parent;
 			}
-			else if (PURPLE_BLIST_NODE_IS_CHAT(node) ||
-					 PURPLE_BLIST_NODE_IS_CONTACT(node))
+			else if (PURPLE_IS_CHAT(node) ||
+					 PURPLE_IS_CONTACT(node))
 			{
 				group = (PurpleGroup *)node->parent;
 			}
-			else if (PURPLE_BLIST_NODE_IS_GROUP(node))
+			else if (PURPLE_IS_GROUP(node))
 			{
 				group = (PurpleGroup *)node;
 			}
@@ -2660,8 +2640,8 @@ static void pidgin_blist_drag_data_rcv_c
 							  &iter, NODE_COLUMN, &val);
 				node = g_value_get_pointer(&val);
 
-				if (PURPLE_BLIST_NODE_IS_BUDDY(node) || PURPLE_BLIST_NODE_IS_CONTACT(node)) {
-					PurpleBuddy *b = PURPLE_BLIST_NODE_IS_BUDDY(node) ? PURPLE_BUDDY(node) : purple_contact_get_priority_buddy(PURPLE_CONTACT(node));
+				if (PURPLE_IS_BUDDY(node) || PURPLE_IS_CONTACT(node)) {
+					PurpleBuddy *b = PURPLE_IS_BUDDY(node) ? PURPLE_BUDDY(node) : purple_contact_get_priority_buddy(PURPLE_CONTACT(node));
 					pidgin_dnd_file_manage(sd, b->account, b->name);
 					gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t);
 				} else {
@@ -2726,15 +2706,15 @@ static GdkPixbuf *pidgin_blist_get_buddy
 	PurplePluginProtocolInfo *prpl_info = NULL;
 	gint orig_width, orig_height, scale_width, scale_height;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if (PURPLE_IS_CONTACT(node)) {
 		buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
 		contact = (PurpleContact*)node;
-	} else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if (PURPLE_IS_BUDDY(node)) {
 		buddy = (PurpleBuddy*)node;
 		contact = purple_buddy_get_contact(buddy);
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		group = (PurpleGroup*)node;
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		/* We don't need to do anything here. We just need to not fall
 		 * into the else block and return. */
 	} else {
@@ -2943,9 +2923,9 @@ static struct tooltip_data * create_tip_
 	PurpleAccount *account = NULL;
 	char *tmp = NULL, *node_name = NULL, *tooltip_text = NULL;
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_BUDDY(node)) {
 		account = ((PurpleBuddy*)(node))->account;
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		account = ((PurpleChat*)(node))->account;
 	}
 
@@ -2960,11 +2940,11 @@ static struct tooltip_data * create_tip_
 		td->layout = create_pango_layout(tooltip_text, &td->width, &td->height);
 	}
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_BUDDY(node)) {
 		tmp = g_markup_escape_text(purple_buddy_get_name((PurpleBuddy*)node), -1);
-	} else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if (PURPLE_IS_CHAT(node)) {
 		tmp = g_markup_escape_text(purple_chat_get_name((PurpleChat*)node), -1);
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		tmp = g_markup_escape_text(purple_group_get_name((PurpleGroup*)node), -1);
 	} else {
 		/* I don't believe this can happen currently, I think
@@ -3179,12 +3159,12 @@ pidgin_blist_create_tooltip_for_node(Gtk
 	}
 
 	gtkblist->tipwindow = widget;
-	if (PURPLE_BLIST_NODE_IS_CHAT(node) ||
-	   PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_CHAT(node) ||
+	   PURPLE_IS_BUDDY(node)) {
 		struct tooltip_data *td = create_tip_for_node(node, TRUE);
 		pidgin_blist_align_tooltip(td, gtkblist->tipwindow);
 		gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td);
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		PurpleGroup *group = (PurpleGroup*)node;
 		GSList *accounts;
 		struct tooltip_data *td = create_tip_for_node(node, TRUE);
@@ -3199,14 +3179,14 @@ pidgin_blist_create_tooltip_for_node(Gtk
 			td = create_tip_for_account(account);
 			gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td);
 		}
-	} else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	} else if (PURPLE_IS_CONTACT(node)) {
 		PurpleBlistNode *child;
 		PurpleBuddy *b = purple_contact_get_priority_buddy((PurpleContact *)node);
 		width = height = 0;
 
 		for(child = node->child; child; child = child->next)
 		{
-			if(PURPLE_BLIST_NODE_IS_BUDDY(child) && buddy_is_displayable((PurpleBuddy*)child)) {
+			if(PURPLE_IS_BUDDY(child) && buddy_is_displayable((PurpleBuddy*)child)) {
 				struct tooltip_data *td = create_tip_for_node(child, (b == (PurpleBuddy*)child));
 				pidgin_blist_align_tooltip(td, gtkblist->tipwindow);
 				if (b == (PurpleBuddy *)child) {
@@ -3256,7 +3236,7 @@ static gboolean pidgin_blist_expand_time
 	gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &iter, NODE_COLUMN, &val);
 	node = g_value_get_pointer(&val);
 
-	if(!PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if(!PURPLE_IS_CONTACT(node)) {
 		gtk_tree_path_free(path);
 		return FALSE;
 	}
@@ -3485,7 +3465,7 @@ static char *pidgin_get_tooltip_text(Pur
 	PurplePluginProtocolInfo *prpl_info = NULL;
 	char *tmp;
 
-	if (PURPLE_BLIST_NODE_IS_CHAT(node))
+	if (PURPLE_IS_CHAT(node))
 	{
 		PurpleChat *chat;
 		GList *connections;
@@ -3561,7 +3541,7 @@ static char *pidgin_get_tooltip_text(Pur
 			cur = g_list_remove(cur, pce);
 		}
 	}
-	else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node))
+	else if (PURPLE_IS_CONTACT(node) || PURPLE_IS_BUDDY(node))
 	{
 		/* NOTE: THIS FUNCTION IS NO LONGER CALLED FOR CONTACTS.
 		 * It is only called by create_tip_for_node(), and create_tip_for_node() is never called for a contact.
@@ -3574,7 +3554,7 @@ static char *pidgin_get_tooltip_text(Pur
 		char *tmp;
 		time_t idle_secs, signon;
 
-		if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+		if (PURPLE_IS_CONTACT(node))
 		{
 			c = (PurpleContact *)node;
 			b = purple_contact_get_priority_buddy(c);
@@ -3661,7 +3641,7 @@ static char *pidgin_get_tooltip_text(Pur
 			PurpleBlistNode *bnode;
 			int lastseen = 0;
 
-			if (gtknode && (!gtknode->contact_expanded || PURPLE_BLIST_NODE_IS_CONTACT(node)))
+			if (gtknode && (!gtknode->contact_expanded || PURPLE_IS_CONTACT(node)))
 			{
 				/* We're either looking at a buddy for a collapsed contact or
 				 * an expanded contact itself so we show the most recent
@@ -3718,7 +3698,7 @@ static char *pidgin_get_tooltip_text(Pur
 		g_free(tmp);
 
 		purple_notify_user_info_destroy(user_info);
-	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+	} else if (PURPLE_IS_GROUP(node)) {
 		gint count;
 		PurpleGroup *group = (PurpleGroup*)node;
 		PurpleNotifyUserInfo *user_info;
@@ -3802,12 +3782,12 @@ pidgin_blist_get_emblem(PurpleBlistNode 
 	PurplePresence *p;
 	PurpleStatus *tune;
 
-	if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if(PURPLE_IS_CONTACT(node)) {
 		if(!gtknode->contact_expanded) {
 			buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
 			gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data;
 		}
-	} else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if(PURPLE_IS_BUDDY(node)) {
 		buddy = (PurpleBuddy*)node;
 		gtkbuddynode = node->ui_data;
 		p = purple_buddy_get_presence(buddy);
@@ -3891,16 +3871,16 @@ pidgin_blist_get_status_icon(PurpleBlist
 	GtkIconSize icon_size = gtk_icon_size_from_name((size == PIDGIN_STATUS_ICON_LARGE) ? PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL :
 											 PIDGIN_ICON_SIZE_TANGO_MICROSCOPIC);
 
-	if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if(PURPLE_IS_CONTACT(node)) {
 		if(!gtknode->contact_expanded) {
 			buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
 			if (buddy != NULL)
 				gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data;
 		}
-	} else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	} else if(PURPLE_IS_BUDDY(node)) {
 		buddy = (PurpleBuddy*)node;
 		gtkbuddynode = node->ui_data;
-	} else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if(PURPLE_IS_CHAT(node)) {
 		chat = (PurpleChat*)node;
 	} else {
 		return NULL;
@@ -4257,10 +4237,10 @@ static gboolean pidgin_blist_refresh_tim
 		return TRUE;
 
 	for(gnode = purple_blist_get_root(); gnode; gnode = gnode->next) {
-		if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
+		if(!PURPLE_IS_GROUP(gnode))
 			continue;
 		for(cnode = gnode->child; cnode; cnode = cnode->next) {
-			if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+			if(PURPLE_IS_CONTACT(cnode)) {
 				PurpleBuddy *buddy;
 
 				buddy = purple_contact_get_priority_buddy((PurpleContact*)cnode);
@@ -4288,8 +4268,8 @@ static void pidgin_blist_hide_node(Purpl
 		gtkblist->selected_node = NULL;
 	if (get_iter_from_node(node, &iter)) {
 		gtk_tree_store_remove(gtkblist->treemodel, &iter);
-		if(update && (PURPLE_BLIST_NODE_IS_CONTACT(node) ||
-			PURPLE_BLIST_NODE_IS_BUDDY(node) || PURPLE_BLIST_NODE_IS_CHAT(node))) {
+		if(update && (PURPLE_IS_CONTACT(node) ||
+			PURPLE_IS_BUDDY(node) || PURPLE_IS_CHAT(node))) {
 			pidgin_blist_update(list, node->parent);
 		}
 	}
@@ -4614,13 +4594,13 @@ gboolean pidgin_blist_node_is_contact_ex
 
 gboolean pidgin_blist_node_is_contact_expanded(PurpleBlistNode *node)
 {
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
+	if (PURPLE_IS_BUDDY(node)) {
 		node = node->parent;
 		if (node == NULL)
 			return FALSE;
 	}
 
-	g_return_val_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node), FALSE);
+	g_return_val_if_fail(PURPLE_IS_CONTACT(node), FALSE);
 
 	return ((struct _pidgin_blist_node *)node->ui_data)->contact_expanded;
 }
@@ -5981,14 +5961,14 @@ static void redo_buddy_list(PurpleBuddyL
 		/* This is only needed when we're reverting to a non-GTK+ sorted
 		 * status.  We shouldn't need to remove otherwise.
 		 */
-		if (remove && !PURPLE_BLIST_NODE_IS_GROUP(node))
+		if (remove && !PURPLE_IS_GROUP(node))
 			pidgin_blist_hide_node(list, node, FALSE);
 
-		if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+		if (PURPLE_IS_BUDDY(node))
 			pidgin_blist_update_buddy(list, node, rerender);
-		else if (PURPLE_BLIST_NODE_IS_CHAT(node))
+		else if (PURPLE_IS_CHAT(node))
 			pidgin_blist_update(list, node);
-		else if (PURPLE_BLIST_NODE_IS_GROUP(node))
+		else if (PURPLE_IS_GROUP(node))
 			pidgin_blist_update(list, node);
 		node = purple_blist_node_next(node, FALSE);
 	}
@@ -6101,7 +6081,7 @@ static void pidgin_blist_selection_chang
 	 * but we don't do it for groups, because it causes total bizarness -
 	 * the previously selected buddy node might rendered at half height.
 	 */
-	if ((new_selection != NULL) && PURPLE_BLIST_NODE_IS_GROUP(new_selection)) {
+	if ((new_selection != NULL) && PURPLE_IS_GROUP(new_selection)) {
 		do_selection_changed(new_selection);
 	} else {
 		g_timeout_add(0, (GSourceFunc)do_selection_changed, new_selection);
@@ -6123,7 +6103,7 @@ static gboolean insert_node(PurpleBuddyL
 	if(get_iter_from_node(node, &cur))
 		curptr = &cur;
 
-	if(PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	if(PURPLE_IS_CONTACT(node) || PURPLE_IS_CHAT(node)) {
 		current_sort_method->func(node, list, parent_iter, curptr, iter);
 	} else {
 		sort_method_none(node, list, parent_iter, curptr, iter);
@@ -6153,10 +6133,10 @@ static gboolean insert_node(PurpleBuddyL
 		GtkTreePath *expand = NULL;
 		struct _pidgin_blist_node *gtkparentnode = node->parent->ui_data;
 
-		if(PURPLE_BLIST_NODE_IS_GROUP(node->parent)) {
+		if(PURPLE_IS_GROUP(node->parent)) {
 			if(!purple_blist_node_get_bool(node->parent, "collapsed"))
 				expand = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &parent_iter);
-		} else if(PURPLE_BLIST_NODE_IS_CONTACT(node->parent) &&
+		} else if(PURPLE_IS_CONTACT(node->parent) &&
 				gtkparentnode->contact_expanded) {
 			expand = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &parent_iter);
 		}
@@ -6175,7 +6155,7 @@ static gboolean pidgin_blist_group_has_s
 
 	gnode = (PurpleBlistNode *)group;
 	for(cnode = gnode->child; cnode; cnode = cnode->next) {
-		if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+		if(PURPLE_IS_CONTACT(cnode)) {
 			for(bnode = cnode->child; bnode; bnode = bnode->next) {
 				PurpleBuddy *buddy = (PurpleBuddy *)bnode;
 				if (purple_account_is_connected(buddy->account) &&
@@ -6203,11 +6183,11 @@ static void pidgin_blist_update_group(Pu
 	if (editing_blist)
 		return;
 
-	if (PURPLE_BLIST_NODE_IS_GROUP(node))
+	if (PURPLE_IS_GROUP(node))
 		gnode = node;
-	else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	else if (PURPLE_IS_BUDDY(node))
 		gnode = node->parent->parent;
-	else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || PURPLE_BLIST_NODE_IS_CHAT(node))
+	else if (PURPLE_IS_CONTACT(node) || PURPLE_IS_CHAT(node))
 		gnode = node->parent;
 	else
 		return;
@@ -6223,7 +6203,7 @@ static void pidgin_blist_update_group(Pu
 
 	if (count > 0 || purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups"))
 		show = TRUE;
-	else if (PURPLE_BLIST_NODE_IS_BUDDY(node) && buddy_is_displayable((PurpleBuddy*)node)) { /* Or chat? */
+	else if (PURPLE_IS_BUDDY(node) && buddy_is_displayable((PurpleBuddy*)node)) { /* Or chat? */
 		show = TRUE;
 	} else if (!show_offline) {
 		show = pidgin_blist_group_has_show_offline_buddy(group);
@@ -6448,15 +6428,15 @@ static void pidgin_blist_update_contact(
 	if (editing_blist)
 		return;
 
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (PURPLE_IS_BUDDY(node))
 		cnode = node->parent;
 	else
 		cnode = node;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(cnode));
+	g_return_if_fail(PURPLE_IS_CONTACT(cnode));
 
 	/* First things first, update the group */
-	if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (PURPLE_IS_BUDDY(node))
 		pidgin_blist_update_group(list, node);
 	else
 		pidgin_blist_update_group(list, cnode->parent);
@@ -6538,7 +6518,7 @@ static void pidgin_blist_update_buddy(Pu
 	PurpleBuddy *buddy;
 	struct _pidgin_blist_node *gtkparentnode;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+	g_return_if_fail(PURPLE_IS_BUDDY(node));
 
 	if (node->parent == NULL)
 		return;
@@ -6569,7 +6549,7 @@ static void pidgin_blist_update_chat(Pur
 {
 	PurpleChat *chat;
 
-	g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
+	g_return_if_fail(PURPLE_IS_CHAT(node));
 
 	if (editing_blist)
 		return;
@@ -6687,21 +6667,14 @@ static void pidgin_blist_update(PurpleBu
 	if (node->ui_data == NULL)
 		pidgin_blist_new_node(node);
 
-	switch(node->type) {
-		case PURPLE_BLIST_GROUP_NODE:
-			pidgin_blist_update_group(list, node);
-			break;
-		case PURPLE_BLIST_CONTACT_NODE:
-			pidgin_blist_update_contact(list, node);
-			break;
-		case PURPLE_BLIST_BUDDY_NODE:
-			pidgin_blist_update_buddy(list, node, TRUE);
-			break;
-		case PURPLE_BLIST_CHAT_NODE:
-			pidgin_blist_update_chat(list, node);
-			break;
-		case PURPLE_BLIST_OTHER_NODE:
-			return;
+	if (PURPLE_IS_GROUP(node)){
+		pidgin_blist_update_group(list, node);
+	} else if (PURPLE_IS_CONTACT(node)){
+		pidgin_blist_update_contact(list, node);
+	} else if (PURPLE_IS_BUDDY(node)){
+		pidgin_blist_update_buddy(list, node, TRUE);
+	} else if (PURPLE_IS_CHAT(node)){
+		pidgin_blist_update_chat(list, node);
 	}
 
 #if !GTK_CHECK_VERSION(2,6,0)
@@ -6802,7 +6775,7 @@ groups_tree(void)
 			 gnode != NULL;
 			 gnode = gnode->next)
 		{
-			if (PURPLE_BLIST_NODE_IS_GROUP(gnode))
+			if (PURPLE_IS_GROUP(gnode))
 			{
 				g    = (PurpleGroup *)gnode;
 				tmp2 = g->name;
@@ -7250,13 +7223,13 @@ static void account_signon_cb(PurpleConn
 	PurpleBlistNode *gnode, *cnode;
 	for(gnode = purple_blist_get_root(); gnode; gnode = gnode->next)
 	{
-		if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
+		if(!PURPLE_IS_GROUP(gnode))
 			continue;
 		for(cnode = gnode->child; cnode; cnode = cnode->next)
 		{
 			PurpleChat *chat;
 
-			if(!PURPLE_BLIST_NODE_IS_CHAT(cnode))
+			if(!PURPLE_IS_CHAT(cnode))
 				continue;
 
 			chat = (PurpleChat *)cnode;
@@ -7499,9 +7472,9 @@ static void sort_method_alphabetical(Pur
 
 	const char *my_name;
 
-	if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if(PURPLE_IS_CONTACT(node)) {
 		my_name = purple_contact_get_alias((PurpleContact*)node);
-	} else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if(PURPLE_IS_CHAT(node)) {
 		my_name = purple_chat_get_name((PurpleChat*)node);
 	} else {
 		sort_method_none(node, blist, groupiter, cur, iter);
@@ -7524,9 +7497,9 @@ static void sort_method_alphabetical(Pur
 		gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &val);
 		n = g_value_get_pointer(&val);
 
-		if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
+		if(PURPLE_IS_CONTACT(n)) {
 			this_name = purple_contact_get_alias((PurpleContact*)n);
-		} else if(PURPLE_BLIST_NODE_IS_CHAT(n)) {
+		} else if(PURPLE_IS_CHAT(n)) {
 			this_name = purple_chat_get_name((PurpleChat*)n);
 		} else {
 			this_name = NULL;
@@ -7564,9 +7537,9 @@ static void sort_method_status(PurpleBli
 
 	PurpleBuddy *my_buddy, *this_buddy;
 
-	if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if(PURPLE_IS_CONTACT(node)) {
 		my_buddy = purple_contact_get_priority_buddy((PurpleContact*)node);
-	} else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if(PURPLE_IS_CHAT(node)) {
 		if (cur != NULL) {
 			*iter = *cur;
 			return;
@@ -7595,7 +7568,7 @@ static void sort_method_status(PurpleBli
 		gtk_tree_model_get_value (GTK_TREE_MODEL(gtkblist->treemodel), &more_z, NODE_COLUMN, &val);
 		n = g_value_get_pointer(&val);
 
-		if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
+		if(PURPLE_IS_CONTACT(n)) {
 			this_buddy = purple_contact_get_priority_buddy((PurpleContact*)n);
 		} else {
 			this_buddy = NULL;
@@ -7657,7 +7630,7 @@ static void sort_method_log_activity(Pur
 		return;
 	}
 
-	if(PURPLE_BLIST_NODE_IS_CONTACT(node)) {
+	if(PURPLE_IS_CONTACT(node)) {
 		PurpleBlistNode *n;
 		PurpleBuddy *buddy;
 		for (n = node->child; n; n = n->next) {
@@ -7665,7 +7638,7 @@ static void sort_method_log_activity(Pur
 			activity_score += purple_log_get_activity_score(PURPLE_LOG_IM, buddy->name, buddy->account);
 		}
 		buddy_name = purple_contact_get_alias((PurpleContact*)node);
-	} else if(PURPLE_BLIST_NODE_IS_CHAT(node)) {
+	} else if(PURPLE_IS_CHAT(node)) {
 		/* we don't have a reliable way of getting the log filename
 		 * from the chat info in the blist, yet */
 		if (cur != NULL) {
@@ -7698,7 +7671,7 @@ static void sort_method_log_activity(Pur
 		n = g_value_get_pointer(&val);
 		this_log_activity_score = 0;
 
-		if(PURPLE_BLIST_NODE_IS_CONTACT(n)) {
+		if(PURPLE_IS_CONTACT(n)) {
 			for (n2 = n->child; n2; n2 = n2->next) {
                         	buddy = (PurpleBuddy*)n2;
 				this_log_activity_score += purple_log_get_activity_score(PURPLE_LOG_IM, buddy->name, buddy->account);
@@ -7710,7 +7683,7 @@ static void sort_method_log_activity(Pur
 
 		cmp = purple_utf8_strcasecmp(buddy_name, this_buddy_name);
 
-		if (!PURPLE_BLIST_NODE_IS_CONTACT(n) || activity_score > this_log_activity_score ||
+		if (!PURPLE_IS_CONTACT(n) || activity_score > this_log_activity_score ||
 				((activity_score == this_log_activity_score) &&
 				 (cmp < 0 || (cmp == 0 && node < n)))) {
 			if (cur != NULL) {
============================================================
--- pidgin/gtkconv.c	d654827dd160ef8e080c82b5b8d45d3a570a93c9
+++ pidgin/gtkconv.c	0d5db701ccb3a4a43b97735402ef2501384621fe
@@ -762,9 +762,9 @@ invite_dnd_recv(GtkWidget *widget, GdkDr
 
 		memcpy(&node, sd->data, sizeof(node));
 
-		if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+		if (PURPLE_IS_CONTACT(node))
 			buddy = purple_contact_get_priority_buddy((PurpleContact *)node);
-		else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+		else if (PURPLE_IS_BUDDY(node))
 			buddy = (PurpleBuddy *)node;
 		else
 			return;
@@ -3920,7 +3920,7 @@ generate_send_to_items(PidginWindow *win
 					PurpleBuddy *buddy = (PurpleBuddy *)node;
 					PurpleAccount *account;
 
-					if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+					if (!PURPLE_IS_BUDDY(node))
 						continue;
 
 					account = purple_buddy_get_account(buddy);
@@ -4434,21 +4434,21 @@ blist_node_aliased_cb(PurpleBlistNode *n
 	if (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)
 		return;
 
-	if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+	if (PURPLE_IS_CONTACT(node))
 	{
 		PurpleBlistNode *bnode;
 
 		for(bnode = node->child; bnode; bnode = bnode->next) {
 
-			if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+			if(!PURPLE_IS_BUDDY(bnode))
 				continue;
 
 			update_chat_alias((PurpleBuddy *)bnode, conv, gc, prpl_info);
 		}
 	}
-	else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+	else if (PURPLE_IS_BUDDY(node))
 		update_chat_alias((PurpleBuddy *)node, conv, gc, prpl_info);
-	else if (PURPLE_BLIST_NODE_IS_CHAT(node) &&
+	else if (PURPLE_IS_CHAT(node) &&
 			purple_conversation_get_account(conv) == ((PurpleChat*)node)->account)
 	{
 		if (old_alias == NULL || g_utf8_collate(old_alias, purple_conversation_get_title(conv)) == 0)
@@ -4510,7 +4510,7 @@ buddy_added_cb(PurpleBlistNode *node, Pu
 static void
 buddy_added_cb(PurpleBlistNode *node, PurpleConversation *conv)
 {
-	if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (!PURPLE_IS_BUDDY(node))
 		return;
 
 	buddy_cb_common(PURPLE_BUDDY(node), conv, TRUE);
@@ -4519,7 +4519,7 @@ buddy_removed_cb(PurpleBlistNode *node, 
 static void
 buddy_removed_cb(PurpleBlistNode *node, PurpleConversation *conv)
 {
-	if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+	if (!PURPLE_IS_BUDDY(node))
 		return;
 
 	/* If there's another buddy for the same "dude" on the list, do nothing. */
@@ -5026,9 +5026,9 @@ conv_dnd_recv(GtkWidget *widget, GdkDrag
 
 		n = *(PurpleBlistNode **)sd->data;
 
-		if (PURPLE_BLIST_NODE_IS_CONTACT(n))
+		if (PURPLE_IS_CONTACT(n))
 			b = purple_contact_get_priority_buddy((PurpleContact*)n);
-		else if (PURPLE_BLIST_NODE_IS_BUDDY(n))
+		else if (PURPLE_IS_BUDDY(n))
 			b = (PurpleBuddy*)n;
 		else
 			return;
@@ -5163,7 +5163,7 @@ buddy_update_cb(PurpleBlistNode *bnode, 
 	GList *list;
 
 	g_return_if_fail(bnode);
-	if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+	if (!PURPLE_IS_BUDDY(bnode))
 		return;
 
 	for (list = pidgin_conv_windows_get_list(); list; list = list->next)
============================================================
--- pidgin/gtkdialogs.c	7accd6f6705171a17f0712851f50d92bb93e1900
+++ pidgin/gtkdialogs.c	4422e8747889f9d44a2f83ffd318c3e949c82850
@@ -1150,12 +1150,12 @@ pidgin_dialogs_remove_group_cb(PurpleGro
 	cnode = ((PurpleBlistNode*)group)->child;
 
 	while (cnode) {
-		if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
+		if (PURPLE_IS_CONTACT(cnode)) {
 			bnode = cnode->child;
 			cnode = cnode->next;
 			while (bnode) {
 				PurpleBuddy *buddy;
-				if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) {
+				if (PURPLE_IS_BUDDY(bnode)) {
 					buddy = (PurpleBuddy*)bnode;
 					bnode = bnode->next;
 					if (purple_account_is_connected(buddy->account)) {
@@ -1166,7 +1166,7 @@ pidgin_dialogs_remove_group_cb(PurpleGro
 					bnode = bnode->next;
 				}
 			}
-		} else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) {
+		} else if (PURPLE_IS_CHAT(cnode)) {
 			PurpleChat *chat = (PurpleChat *)cnode;
 			cnode = cnode->next;
 			if (purple_account_is_connected(chat->account))
============================================================
--- pidgin/gtklog.c	145805ca4e43bb75ee6f1180928a1106dcae1c13
+++ pidgin/gtklog.c	ac420f4c99d6c0f1a03c01b9a18d0cc159c4ffad
@@ -766,7 +766,7 @@ void pidgin_log_show_contact(PurpleConta
 		const char *buddy_name;
 		PurpleAccount *account;
 
-		if (!PURPLE_BLIST_NODE_IS_BUDDY(child))
+		if (!PURPLE_IS_BUDDY(child))
 			continue;
 
 		buddy_name = purple_buddy_get_name((PurpleBuddy *)child);
@@ -796,7 +796,7 @@ void pidgin_log_show_contact(PurpleConta
 	 * and none of the contact's buddies are online.
 	 * There is probably a better way to deal with this. */
 	if (name == NULL) {
-		if (contact->node.child != NULL && PURPLE_BLIST_NODE_IS_BUDDY(contact->node.child))
+		if (contact->node.child != NULL && PURPLE_IS_BUDDY(contact->node.child))
 			name = purple_buddy_get_contact_alias((PurpleBuddy *) contact->node.child);
 		if (name == NULL)
 			name = "";
============================================================
--- pidgin/gtkpounce.c	c0fec68a034f88524c0f9125fee83acd0938a38e
+++ pidgin/gtkpounce.c	782d226bc8c73ff68f13805f55e34989d4fcd2fd
@@ -421,9 +421,9 @@ pounce_dnd_recv(GtkWidget *widget, GdkDr
 
 		memcpy(&node, sd->data, sizeof(node));
 
-		if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+		if (PURPLE_IS_CONTACT(node))
 			buddy = purple_contact_get_priority_buddy((PurpleContact *)node);
-		else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
+		else if (PURPLE_IS_BUDDY(node))
 			buddy = (PurpleBuddy *)node;
 		else
 			return;
============================================================
--- pidgin/gtkutils.c	5d665ed041878b9f2a465ab9e8642a53d109ccc5
+++ pidgin/gtkutils.c	bfd9769230d0552a3b39a44822568eee0462ff92
@@ -2159,12 +2159,12 @@ add_completion_list(PidginCompletionData
 
 	for (gnode = purple_blist_get_root(); gnode != NULL; gnode = gnode->next)
 	{
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
+		if (!PURPLE_IS_GROUP(gnode))
 			continue;
 
 		for (cnode = gnode->child; cnode != NULL; cnode = cnode->next)
 		{
-			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
+			if (!PURPLE_IS_CONTACT(cnode))
 				continue;
 
 			for (bnode = cnode->child; bnode != NULL; bnode = bnode->next)
============================================================
--- pidgin/plugins/ticker/ticker.c	37e28f5fdc744788c968a562dd2b50694a993619
+++ pidgin/plugins/ticker/ticker.c	c257d06dd84be48559f1eaa13915573db5d53a8f
@@ -235,19 +235,19 @@ static void buddy_ticker_show(void)
 	    gnode;
 	    gnode = purple_blist_node_get_sibling_next(gnode))
 	{
-		if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
+		if(!PURPLE_IS_GROUP(gnode))
 			continue;
 		for(cnode = purple_blist_node_get_first_child(gnode);
 		    cnode;
 		    cnode = purple_blist_node_get_sibling_next(cnode))
 		{
-			if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
+			if(!PURPLE_IS_CONTACT(cnode))
 				continue;
 			for(bnode = purple_blist_node_get_first_child(cnode);
 			    bnode;
 			    bnode = purple_blist_node_get_sibling_next(bnode))
 			{
-				if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
+				if(!PURPLE_IS_BUDDY(bnode))
 					continue;
 				b = (PurpleBuddy *)bnode;
 				if(PURPLE_BUDDY_IS_ONLINE(b))


More information about the Commits mailing list