--- a/libpurple/buddyicon.c Mon Jul 15 19:40:11 2013 +0530 +++ b/libpurple/buddyicon.c Mon Jul 15 19:41:51 2013 +0530 @@ -1135,9 +1135,10 @@ static PurpleBuddyIcon * purple_buddy_icon_copy(PurpleBuddyIcon *icon) { - return purple_buddy_icon_new(icon->account, icon->username, - (void *)purple_imgstore_get_data(icon->img), - purple_imgstore_get_size(icon->img), icon->checksum); + PurpleBuddyIcon *icon_copy = g_new(PurpleBuddyIcon, 1); + *icon_copy = *icon; + + return icon_copy; } GType @@ -1148,7 +1149,7 @@ if (type == 0) { type = g_boxed_type_register_static("PurpleBuddyIcon", (GBoxedCopyFunc)purple_buddy_icon_copy, - (GBoxedFreeFunc)purple_buddy_icon_unref); + (GBoxedFreeFunc)g_free); } return type;