changeset 23790:a8a26b4d8458

propagate from branch 'im.pidgin.pidgin' (head 86f8b3e5d789c691f873f515a92fe8e111dcab6e) to branch 'im.pidgin.pidgin.vv.ticket34' (head 49c87e1875454a84f007720923563cf82dc8862b)
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 22 Mar 2008 04:56:03 +0000
parents 128f6cb57829 (current diff) 06f195789c3e (diff)
children 42a4331acb82
files configure.ac libpurple/protocols/jabber/libxmpp.c libpurple/protocols/msn/msn.c pidgin/gtkconvwin.h pidgin/pidginstock.c pidgin/pidginstock.h
diffstat 28 files changed, 1088 insertions(+), 369 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Sat Mar 22 04:51:58 2008 +0000
+++ b/COPYRIGHT	Sat Mar 22 04:56:03 2008 +0000
@@ -325,6 +325,7 @@
 Jason Roth
 Jean-Francois Roy
 Peter Ruibal
+Michael Ruprecht
 Sam S.
 Thanumalayan S.
 Tomasz Sałaciński <tsalacinski@gmail.com>
--- a/ChangeLog	Sat Mar 22 04:51:58 2008 +0000
+++ b/ChangeLog	Sat Mar 22 04:56:03 2008 +0000
@@ -16,6 +16,8 @@
 	* Fix a crash when starting if you have a Zephyr account
 	* Increase XMPP ping timeout to 120 seconds, to prevent poor network
 	  connections from timing out unnecessarily.
+	* Don't crash on XMPP forms with empty default values.
+	* Fix issues with CHAP authentication for SOCKS5 proxies.
 
 	Pidgin:
 	* Remove a workaround for older versions gstreamer that was causing
--- a/configure.ac	Sat Mar 22 04:51:58 2008 +0000
+++ b/configure.ac	Sat Mar 22 04:56:03 2008 +0000
@@ -166,7 +166,7 @@
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS_ONCE(arpa/nameser_compat.h fcntl.h sys/time.h unistd.h locale.h signal.h stdint.h regex.h)
+AC_CHECK_HEADERS(arpa/nameser_compat.h fcntl.h sys/time.h unistd.h locale.h signal.h stdint.h regex.h)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -1093,7 +1093,7 @@
 AC_ARG_WITH(zephyr, [AC_HELP_STRING([--with-zephyr=PREFIX], [compile Zephyr plugin against external libzephyr])], zephyr="$withval", zephyr="no")
 AM_CONDITIONAL(EXTERNAL_LIBZEPHYR, test "x$zephyr" != "xno")
 
-AC_CHECK_HEADERS_ONCE(sys/utsname.h)
+AC_CHECK_HEADERS(sys/utsname.h)
 AC_CHECK_FUNC(uname)
 
 AC_ARG_ENABLE(fortify, [AC_HELP_STRING([--disable-fortify], [compile without FORTIFY_SOURCE support])], , enable_fortify=yes)
@@ -1421,7 +1421,7 @@
 
 		oldCPPFLAGS="$CPPFLAGS"
 		CPPFLAGS="$CPPFLAGS $PERL_CFLAGS"
-		AC_CHECK_HEADERS_ONCE(EXTERN.h)
+		AC_CHECK_HEADERS(EXTERN.h)
 		AC_CHECK_HEADERS(perl.h, [], enable_perl=no,
 		[#if HAVE_EXTERN_H
 		 # include <EXTERN.h>
@@ -2143,13 +2143,13 @@
 AC_MSG_RESULT(no)
 AC_CHECK_FUNCS(gethostid lrand48)
 AC_CHECK_FUNCS(memcpy memmove random strchr strerror vprintf)
-AC_CHECK_HEADERS_ONCE(malloc.h paths.h sgtty.h stdarg.h sys/cdefs.h)
-AC_CHECK_HEADERS_ONCE(sys/file.h sys/filio.h sys/ioctl.h sys/msgbuf.h)
-AC_CHECK_HEADERS_ONCE(sys/select.h sys/uio.h sys/utsname.h sys/wait.h)
-AC_CHECK_HEADERS_ONCE(termios.h)
+AC_CHECK_HEADERS(malloc.h paths.h sgtty.h stdarg.h sys/cdefs.h)
+AC_CHECK_HEADERS(sys/file.h sys/filio.h sys/ioctl.h sys/msgbuf.h)
+AC_CHECK_HEADERS(sys/select.h sys/uio.h sys/utsname.h sys/wait.h)
+AC_CHECK_HEADERS(termios.h)
 
 # sys/sysctl.h on OpenBSD 4.2 requires sys/param.h
-AC_CHECK_HEADERS_ONCE(sys/param.h)
+AC_CHECK_HEADERS(sys/param.h)
 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
 	[[
 		#ifdef HAVE_PARAM_H
@@ -2157,7 +2157,7 @@
 		#endif
 	]])
 
-AC_CHECK_HEADERS_ONCE(sys/socket.h)
+AC_CHECK_HEADERS(sys/socket.h)
 AC_VAR_TIMEZONE_EXTERNALS
 
 AC_CACHE_CHECK(for tm_gmtoff in struct tm, ac_cv_struct_tm_gmtoff,
--- a/libpurple/account.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/account.c	Sat Mar 22 04:56:03 2008 +0000
@@ -751,6 +751,7 @@
 		description = g_strdup("");
 
 	current_error = g_new0(PurpleConnectionErrorInfo, 1);
+	PURPLE_DBUS_REGISTER_POINTER(current_error, PurpleConnectionErrorInfo);
 	current_error->type = type;
 	current_error->description = description;
 
@@ -1009,6 +1010,7 @@
 		purple_log_free(account->system_log);
 
 	priv = PURPLE_ACCOUNT_GET_PRIVATE(account);
+	PURPLE_DBUS_UNREGISTER_POINTER(priv->current_error);
 	g_free(priv->current_error);
 	g_free(priv);
 
@@ -2365,8 +2367,7 @@
 }
 
 static void
-set_current_error(PurpleAccount *account,
-                  PurpleConnectionErrorInfo *new_err)
+set_current_error(PurpleAccount *account, PurpleConnectionErrorInfo *new_err)
 {
 	PurpleAccountPrivate *priv;
 	PurpleConnectionErrorInfo *old_err;
@@ -2389,6 +2390,7 @@
 	if(old_err)
 		g_free(old_err->description);
 
+	PURPLE_DBUS_UNREGISTER_POINTER(old_err);
 	g_free(old_err);
 }
 
@@ -2406,6 +2408,7 @@
 	g_return_if_fail(account != NULL);
 
 	err = g_new0(PurpleConnectionErrorInfo, 1);
+	PURPLE_DBUS_REGISTER_POINTER(err, PurpleConnectionErrorInfo);
 
 	err->type = type;
 	err->description = g_strdup(description);
--- a/libpurple/nat-pmp.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/nat-pmp.c	Sat Mar 22 04:56:03 2008 +0000
@@ -182,7 +182,7 @@
 
     if (!(buf = malloc(needed)))
 	{
-		purple_debug_warning("nat-pmp", "malloc\n");
+		purple_debug_warning("nat-pmp", "Failed to malloc %i\n", needed);
 		return NULL;
     }
 
@@ -232,7 +232,7 @@
 						sin->sin_addr.s_addr = rti_sin->sin_addr.s_addr;
 						memcpy(sin, rti_info[RTAX_GATEWAY], sizeof(struct sockaddr_in));
 
-						purple_debug_info("nat-pmp", "found a default gateway\n");
+						purple_debug_info("nat-pmp", "Found a default gateway\n");
 						found = TRUE;
 						break;
 					}
@@ -455,7 +455,8 @@
 	{
 		success = (resp->opcode == (req.opcode + 128));
 		if (!success)
-			purple_debug_info("nat-pmp", "The opcode for the response from the NAT device does not match the request opcode!\n");
+			purple_debug_info("nat-pmp", "The opcode for the response from the NAT device (%i) does not match the request opcode (%i + 128 = %i)!\n",
+							  resp->opcode, req.opcode, req.opcode + 128);
 	}
 
 #ifdef PMP_DEBUG
@@ -492,7 +493,8 @@
 	success = purple_pmp_create_map(((type == PURPLE_PMP_TYPE_UDP) ? PMP_MAP_OPCODE_UDP : PMP_MAP_OPCODE_TCP),
 							privateport, 0, 0);
 	if (!success)
-		purple_debug_warning("nat-pmp", "Failed to properly destroy mapping for %d!\n", privateport);
+		purple_debug_warning("nat-pmp", "Failed to properly destroy mapping for %s port %d!\n",
+							 ((type == PURPLE_PMP_TYPE_UDP) ? "UDP" : "TCP"), privateport);
 
 	return success;
 }
--- a/libpurple/plugins/test.pl	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/plugins/test.pl	Sat Mar 22 04:56:03 2008 +0000
@@ -1,6 +1,4 @@
-#!/usr/bin/env perl -w
-
-use Gaim;
+use Purple;
 
 %PLUGIN_INFO = (
 	perl_api_version => 2,
@@ -8,51 +6,37 @@
 	version          => '1.0',
 	summary          => 'Provides as a test base for the perl plugin.',
 	description      => 'Provides as a test base for the perl plugin.',
-	author           => 'Christian Hammond <chipx86@gnupdate.org>',
+	author           => 'Etan Reisner <deryni\@pidgin.im>',
 	url              => 'http://pidgin.im',
 
-	load             => "plugin_load",
-	unload           => "plugin_unload"
+	load             => "plugin_load"
 );
 
-sub account_away_cb {
-	Gaim::debug_info("perl test plugin", "In account_away_cb\n");
-
-	my ($account, $state, $message, $data) = @_;
-
-	Gaim::debug_info("perl test plugin", "Account " .
-	                 $account->get_username() . " went away.\n");
-	Gaim::debug_info("perl test plugin", $data . "\n");
-}
-
 sub plugin_init {
 	return %PLUGIN_INFO;
 }
 
+sub account_status_cb {
+	my ($account, $old, $new, $data) = @_;
+
+	Purple::Debug::info("perl test plugin", "In account_status_cb\n");
+
+	Purple::Debug::info("perl test plugin", "Account " .
+	                    $account->get_username() . " changed status.\n");
+	Purple::Debug::info("perl test plugin", $data . "\n");
+}
+
 sub plugin_load {
-	Gaim::debug_info("perl test plugin", "plugin_load\n");
 	my $plugin = shift;
 
-	Gaim::debug_info("perl test plugin", "Listing accounts.\n");
-	foreach $account (Gaim::accounts()) {
-		Gaim::debug_info("perl test plugin", $account->get_username() . "\n");
+	Purple::Debug::info("perl test plugin", "plugin_load\n");
+
+	Purple::Debug::info("perl test plugin", "Listing accounts.\n");
+	foreach $account (Purple::Accounts::get_all()) {
+		Purple::Debug::info("perl test plugin", $account->get_username() . "\n");
 	}
 
-	Gaim::debug_info("perl test plugin", "Listing buddy list.\n");
-	foreach $group (Gaim::BuddyList::groups()) {
-		Gaim::debug_info("perl test plugin",
-		                 $group->get_name() . ":\n");
-
-		foreach $buddy ($group->buddies()) {
-			Gaim::debug_info("perl test plugin",
-			                 "  " . $buddy->get_name() . "\n");
-		}
-	}
-
-	Gaim::signal_connect(Gaim::Accounts::handle, "account-away",
-	                     $plugin, \&account_away_cb, "test");
+	Purple::Signal::connect(Purple::Accounts::get_handle(),
+	                        "account-status-changed", $plugin,
+	                        \&account_status_cb, "test");
 }
-
-sub plugin_unload {
-	my $plugin = shift;
-}
--- a/libpurple/protocols/jabber/Makefile.mingw	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/jabber/Makefile.mingw	Sat Mar 22 04:56:03 2008 +0000
@@ -83,7 +83,7 @@
 			-lpurple
 
 ifeq ($(CYRUS_SASL), 1)
-CYRUS_SASL_TOP := $(WIN32_DEV_TOP)/cyrus-sasl-2.1.22
+CYRUS_SASL_TOP := $(WIN32_DEV_TOP)/cyrus-sasl-2.1.22-daa1
 INCLUDE_PATHS += -I$(CYRUS_SASL_TOP)/include
 LIB_PATHS += -L$(CYRUS_SASL_TOP)/lib
 LIBS += -llibsasl
--- a/libpurple/protocols/jabber/auth.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/jabber/auth.c	Sat Mar 22 04:56:03 2008 +0000
@@ -490,6 +490,12 @@
 	{
 		char *mech_name = xmlnode_get_data(mechnode);
 #ifdef HAVE_CYRUS_SASL
+		/* Skip the GSSAPI mechanism unless it's enabled for this account */
+		if (mech_name && !strcmp(mech_name, "GSSAPI") &&
+			!purple_account_get_bool(js->gc->account, "auth_gssapi", TRUE)) {
+			continue;
+		}
+
 		g_string_append(js->sasl_mechs, mech_name);
 		g_string_append_c(js->sasl_mechs, ' ');
 #else
--- a/libpurple/protocols/jabber/libxmpp.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/jabber/libxmpp.c	Sat Mar 22 04:56:03 2008 +0000
@@ -224,6 +224,14 @@
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
 						   option);
 
+#ifdef HAVE_CYRUS_SASL
+	option = purple_account_option_bool_new(
+											_("Use GSSAPI (Kerberos v5) for authentication"),
+											"auth_gssapi", TRUE);
+	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
+											   option);	
+#endif
+	
 	option = purple_account_option_int_new(_("Connect port"), "port", 5222);
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
 						   option);
--- a/libpurple/protocols/jabber/xdata.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/jabber/xdata.c	Sat Mar 22 04:56:03 2008 +0000
@@ -285,7 +285,10 @@
 
 			for(valuenode = xmlnode_get_child(fn, "value"); valuenode;
 					valuenode = xmlnode_get_next_twin(valuenode)) {
-				selected = g_list_prepend(selected, xmlnode_get_data(valuenode));
+				char *data = xmlnode_get_data(valuenode);
+				if (data != NULL) {
+					selected = g_list_prepend(selected, data);
+				}
 			}
 
 			for(optnode = xmlnode_get_child(fn, "option"); optnode;
--- a/libpurple/protocols/msn/command.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/msn/command.c	Sat Mar 22 04:56:03 2008 +0000
@@ -58,6 +58,7 @@
 		(!strcmp(str,"FQY")) ||
 		(!strcmp(str,"UUN")) ||
 		(!strcmp(str,"UUX")) ||
+		(!strcmp(str,"IPG")) ||
 		(is_num(str))){
 			return TRUE;
 		}
--- a/libpurple/protocols/msn/msn.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/msn/msn.c	Sat Mar 22 04:56:03 2008 +0000
@@ -236,7 +236,9 @@
 	MsnSession *session;
 	MsnCmdProc *cmdproc;
 	MsnPage *page;
-	char *payload;
+	MsnUser *user;
+	char *payload = NULL;
+	const char *mobile_number = NULL;
 	size_t payload_len;
 
 	session = gc->proto_data;
@@ -247,7 +249,19 @@
 
 	payload = msn_page_gen_payload(page, &payload_len);
 
-	trans = msn_transaction_new(cmdproc, "PGD", "%s 1 %d", who, payload_len);
+	if ((user = msn_userlist_find_user(session->userlist, who)) &&
+		(mobile_number = msn_user_get_mobile_phone(user)) &&
+		mobile_number[0] == '+') {
+		/* if msn_user_get_mobile_phone() has a + in front, it's a number
+		   that from the buddy's contact card */
+		trans = msn_transaction_new(cmdproc, "PGD", "tel:%s 1 %d",
+			mobile_number, payload_len);
+	} else {
+		/* otherwise we send to whatever phone number the buddy registered
+		   with msn */
+		trans = msn_transaction_new(cmdproc, "PGD", "%s 1 %d", who,
+			payload_len);
+	}
 
 	msn_transaction_set_payload(trans, payload, payload_len);
 	g_free(payload);
--- a/libpurple/protocols/msn/notification.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/msn/notification.c	Sat Mar 22 04:56:03 2008 +0000
@@ -461,7 +461,7 @@
 	passport = msg->remote_user;
 
 	content_type = msn_message_get_content_type(msg);
-	purple_debug_info("MSNP14","type:%d\n",content_type);
+	purple_debug_info("MSNP14", "type:%s\n", content_type);
 	if(!strcmp(content_type,"text/plain")){
 		const char *value;
 		const char *body;
@@ -1071,9 +1071,61 @@
 static void
 ipg_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len)
 {
-#if 0
+	PurpleConnection *gc;
+	MsnUserList *userlist;
+	char *who = NULL, *text = NULL;
+	xmlnode *payloadNode, *from, *textNode;
+
 	purple_debug_misc("msn", "Incoming Page: {%s}\n", payload);
-#endif
+
+	userlist = cmdproc->session->userlist;
+	gc = purple_account_get_connection(cmdproc->session->account);
+
+	/* payload looks like this:
+	   <?xml version="1.0"?>
+	   <NOTIFICATION id="0" siteid="111100400" siteurl="http://mobile.msn.com/">
+	     <TO name="passport@example.com">
+	       <VIA agent="mobile"/>
+	     </TO>
+	     <FROM name="tel:+XXXXXXXXXXX"/>
+		 <MSG pri="1" id="1">
+		   <CAT Id="110110001"/>
+		   <ACTION url="2wayIM.asp"/>
+		   <SUBSCR url="2wayIM.asp"/>
+		   <BODY lcid="1033">
+		     <TEXT>Message was here</TEXT>
+		   </BODY>
+		 </MSG>
+	   </NOTIFICATION>
+	*/
+
+	if (!(payloadNode = xmlnode_from_str(payload, len)) ||
+		!(from = xmlnode_get_child(payloadNode, "FROM")) ||
+		!(textNode = xmlnode_get_child(payloadNode, "MSG/BODY/TEXT")))
+		return;
+
+	who = g_strdup(xmlnode_get_attrib(from, "name"));
+	if (!who) return;
+
+	text = xmlnode_get_data(textNode);
+
+	/* Match number to user's mobile number, FROM is a phone number if the
+	   other side page you using your phone number */
+	if(!strncmp(who, "tel:+", 5)) {
+		MsnUser *user =
+			msn_userlist_find_user_with_mobile_phone(userlist, who + 4);
+
+		if(user && user->passport) {
+			g_free(who);
+			who = g_strdup(user->passport);
+		}
+	}
+
+	serv_got_im(gc, who, text, 0, time(NULL));
+
+	g_free(text);
+	g_free(who);
+	xmlnode_free(payloadNode);
 }
 
 static void
--- a/libpurple/protocols/msn/switchboard.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/msn/switchboard.c	Sat Mar 22 04:56:03 2008 +0000
@@ -1194,9 +1194,10 @@
 
 	swboard = trans->data;
 
-	purple_debug_info("msn", "xfr_error %i for %s: trans %x, command %s, reason %i\n",
-					error, (swboard->im_user ? swboard->im_user : "(null)"), trans,
-					(trans->command ? trans->command : "(null)"), reason);
+	purple_debug_info("msn",
+		"xfr_error %i for %s: trans %p, command %s, reason %i\n",
+		error, (swboard->im_user ? swboard->im_user : "(null)"), trans,
+		(trans->command ? trans->command : "(null)"), reason);
 
 	swboard_error_helper(swboard, reason, swboard->im_user);
 }
--- a/libpurple/protocols/msn/transaction.h	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/msn/transaction.h	Sat Mar 22 04:56:03 2008 +0000
@@ -61,9 +61,8 @@
 							   this transaction. */
 };
 
-MsnTransaction *msn_transaction_new(MsnCmdProc *cmdproc,
-									const char *command,
-									const char *format, ...);
+MsnTransaction *msn_transaction_new(MsnCmdProc *cmdproc, const char *command,
+ 	const char *format, ...) G_GNUC_PRINTF(3, 4);
 void msn_transaction_destroy(MsnTransaction *trans);
 
 char *msn_transaction_to_string(MsnTransaction *trans);
--- a/libpurple/protocols/msn/userlist.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/msn/userlist.c	Sat Mar 22 04:56:03 2008 +0000
@@ -500,11 +500,10 @@
 {
  	GList *l;
 
-        g_return_val_if_fail(uid != NULL, NULL);
+	g_return_val_if_fail(uid != NULL, NULL);
 
-        for (l = userlist->users; l != NULL; l = l->next)
-        {
-                MsnUser *user = (MsnUser *)l->data;
+	for (l = userlist->users; l != NULL; l = l->next) {
+		MsnUser *user = (MsnUser *)l->data;
 
 		if (user->uid == NULL) {
 			continue;
@@ -518,6 +517,28 @@
 	return NULL;
 }
 
+MsnUser *
+msn_userlist_find_user_with_mobile_phone(MsnUserList *userlist, const char *number)
+{
+	GList *l;
+
+	g_return_val_if_fail(number != NULL, NULL);
+
+	for (l = userlist->users; l != NULL; l = l->next) {
+		MsnUser *user = (MsnUser *)l->data;
+
+		if (user->phone.mobile == NULL) {
+			continue;
+		}
+
+		if (!g_strcasecmp(number, user->phone.mobile)) {
+			return user;
+		}
+	}
+
+	return NULL;
+}
+
 void
 msn_userlist_add_group(MsnUserList *userlist, MsnGroup *group)
 {
--- a/libpurple/protocols/msn/userlist.h	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/msn/userlist.h	Sat Mar 22 04:56:03 2008 +0000
@@ -80,6 +80,7 @@
 MsnUser * msn_userlist_find_add_user(MsnUserList *userlist,
 				const char *passport, const char *userName);
 MsnUser * msn_userlist_find_user_with_id(MsnUserList *userlist, const char *uid);
+MsnUser * msn_userlist_find_user_with_mobile_phone(MsnUserList *userlist, const char *number);
 
 void msn_userlist_add_group(MsnUserList *userlist, MsnGroup *group);
 void msn_userlist_remove_group(MsnUserList *userlist, MsnGroup *group);
--- a/libpurple/protocols/myspace/markup.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/protocols/myspace/markup.c	Sat Mar 22 04:56:03 2008 +0000
@@ -181,7 +181,7 @@
 {
 	guint dpi;
 
-	dpi = purple_account_get_int(session->account, "port", MSIM_DEFAULT_DPI);
+	dpi = purple_account_get_int(session->account, "dpi", MSIM_DEFAULT_DPI);
 
 	return (guint)msim_round((POINTS_PER_INCH * 1. / dpi) * height);
 
@@ -195,7 +195,7 @@
 {
 	guint dpi;
 
-	dpi = purple_account_get_int(session->account, "port", MSIM_DEFAULT_DPI);
+	dpi = purple_account_get_int(session->account, "dpi", MSIM_DEFAULT_DPI);
 
 	return (guint)msim_round((dpi * 1. / POINTS_PER_INCH) * point);
 }
--- a/libpurple/proxy.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/libpurple/proxy.c	Sat Mar 22 04:56:03 2008 +0000
@@ -1356,11 +1356,17 @@
 	purple_debug(PURPLE_DEBUG_INFO, "socks5 proxy", "Got CHAP response.\n");
 
 	if (connect_data->read_buffer == NULL) {
-		connect_data->read_buf_len = 20;
+		/* A big enough butfer to read the message header (2 bytes) and at least one complete attribute and value (1 + 1 + 255). */
+		connect_data->read_buf_len = 259;
 		connect_data->read_buffer = g_malloc(connect_data->read_buf_len);
 		connect_data->read_len = 0;
 	}
 
+	if (connect_data->read_buf_len - connect_data->read_len == 0) {
+		/*If the stuff below is right, this shouldn't be possible. */
+		purple_debug_error("socks5 proxy", "This is about to suck because the read buffer is full (shouldn't happen).\n");
+	}
+
 	len = read(connect_data->fd, connect_data->read_buffer + connect_data->read_len,
 		connect_data->read_buf_len - connect_data->read_len);
 
@@ -1400,13 +1406,31 @@
 	cmdbuf++;
 
 	for (currentav = 0; currentav < navas; currentav++) {
-		if (connect_data->read_len - (cmdbuf - connect_data->read_buffer) < 2)
+
+		len = connect_data->read_len - (cmdbuf - connect_data->read_buffer);
+		/* We don't have enough data to even know how long the next attribute is,
+		 * or we don't have the full length of the next attribute. */
+		if (len < 2 || len < (cmdbuf[1] + 2)) {
+			/* Clear out the attributes that have been read - decrease the attribute count */
+			connect_data->read_buffer[1] = navas - currentav;
+			/* Move the unprocessed data into the first attribute position */
+			memmove((connect_data->read_buffer + 2), cmdbuf, len);
+			/* Decrease the read count accordingly */
+			connect_data->read_len = len + 2;
 			return;
-		if (connect_data->read_len - (cmdbuf - connect_data->read_buffer) < cmdbuf[1])
-			return;
+		}
+
 		buf = cmdbuf + 2;
+
+		if (cmdbuf[1] == 0) {
+			purple_debug_error("socks5 proxy", "Attribute %x Value length of 0; ignoring.\n", cmdbuf[0]);
+			cmdbuf = buf;
+			continue;
+		}
+
 		switch (cmdbuf[0]) {
 			case 0x00:
+				purple_debug_info("socks5 proxy", "Received STATUS of %x\n", buf[0]);
 				/* Did auth work? */
 				if (buf[0] == 0x00) {
 					purple_input_remove(connect_data->inpa);
@@ -1415,7 +1439,6 @@
 					connect_data->read_buffer = NULL;
 					/* Success */
 					s5_sendconnect(connect_data, connect_data->fd);
-					return;
 				} else {
 					/* Failure */
 					purple_debug_warning("proxy",
@@ -1423,10 +1446,10 @@
 						"failed.  Disconnecting...");
 					purple_proxy_connect_data_disconnect(connect_data,
 							_("Authentication failed"));
-					return;
 				}
-				break;
+				return;
 			case 0x03:
+				purple_debug_info("socks5 proxy", "Received CHALLENGE\n");
 				/* Server wants our credentials */
 
 				connect_data->write_buf_len = 16 + 4;
@@ -1451,8 +1474,9 @@
 					PURPLE_INPUT_WRITE, proxy_do_write, connect_data);
 
 				proxy_do_write(connect_data, connect_data->fd, PURPLE_INPUT_WRITE);
-				break;
+				return;
 			case 0x11:
+				purple_debug_info("socks5 proxy", "Received ALGORIGTHMS of %x\n", buf[0]);
 				/* Server wants to select an algorithm */
 				if (buf[0] != 0x85) {
 					/* Only currently support HMAC-MD5 */
@@ -1467,12 +1491,19 @@
 					return;
 				}
 				break;
+			default:
+				purple_debug_info("socks5 proxy", "Received unused command %x, length=%d\n", cmdbuf[0], cmdbuf[1]);
 		}
 		cmdbuf = buf + cmdbuf[1];
 	}
+
 	/* Fell through.  We ran out of CHAP events to process, but haven't
 	 * succeeded or failed authentication - there may be more to come.
 	 * If this is the case, come straight back here. */
+
+	/* We've processed all the available attributes, so get ready for a whole new message */
+ 	g_free(connect_data->read_buffer);
+	connect_data->read_buffer = NULL;
 }
 
 static void
--- a/pidgin/gtkblist.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/pidgin/gtkblist.c	Sat Mar 22 04:56:03 2008 +0000
@@ -3354,24 +3354,34 @@
 
 		purple_notify_user_info_destroy(user_info);
 	} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+		gint count;
 		PurpleGroup *group = (PurpleGroup*)node;
 		PurpleNotifyUserInfo *user_info;
 
 		user_info = purple_notify_user_info_new();
 
-		/* Total buddies (from online accounts) in group */
-		tmp = g_strdup_printf("%d",
-		                      purple_blist_get_group_size(group, FALSE));
-		purple_notify_user_info_add_pair(user_info, _("Total Buddies"),
-		                                 tmp);
-		g_free(tmp);
-
-		/* Online buddies in group */
-		tmp = g_strdup_printf("%d",
-		                      purple_blist_get_group_online_count(group));
-		purple_notify_user_info_add_pair(user_info, _("Online Buddies"),
-		                                 tmp);
-		g_free(tmp);
+		count = purple_blist_get_group_online_count(group);
+
+		if (count != 0) {
+			/* Online buddies in group */
+			tmp = g_strdup_printf("%d", count);
+			purple_notify_user_info_add_pair(user_info,
+			                                 _("Online Buddies"),
+			                                 tmp);
+			g_free(tmp);
+		}
+		count = 0;
+
+		count = purple_blist_get_group_size(group, FALSE);
+		if (count != 0) {
+			/* Total buddies (from online accounts) in group */
+			tmp = g_strdup_printf("%d", count);
+			purple_notify_user_info_add_pair(user_info,
+			                                 _("Total Buddies"),
+			                                 tmp);
+			g_free(tmp);
+		}
+		count = 0;
 
 		tmp = purple_notify_user_info_get_text_with_newline(user_info, "\n");
 		g_string_append(str, tmp);
@@ -6356,43 +6366,25 @@
 	vbox = gtk_vbox_new(FALSE, 0);
 	gtk_container_add(GTK_CONTAINER(hbox), vbox);
 
-	label = gtk_label_new(
-		_("Please enter the screen name of the person you would like "
-		  "to add to your buddy list. You may optionally enter an alias, "
-		  "or nickname,  for the buddy. The alias will be displayed in "
-		  "place of the screen name whenever possible.\n"));
-
-	gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1);
-	gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+	g_signal_connect(G_OBJECT(data->window), "destroy",
+	                 G_CALLBACK(destroy_add_buddy_dialog_cb), data);
+
+	label = gtk_label_new(_("Add a buddy.\n"));
 	gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
 	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
 
-	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
-	gtk_container_add(GTK_CONTAINER(vbox), hbox);
-
-	g_signal_connect(G_OBJECT(data->window), "destroy",
-					 G_CALLBACK(destroy_add_buddy_dialog_cb), data);
-
 	table = gtk_table_new(4, 2, FALSE);
 	gtk_table_set_row_spacings(GTK_TABLE(table), 5);
 	gtk_table_set_col_spacings(GTK_TABLE(table), 5);
 	gtk_container_set_border_width(GTK_CONTAINER(table), 0);
 	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
 
-	/* Set up stuff for the account box */
-	label = gtk_label_new_with_mnemonic(_("A_ccount:"));
-	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
-
 	data->account_box = pidgin_account_option_menu_new(account, FALSE,
 			G_CALLBACK(add_buddy_select_account_cb), NULL, data);
 
-	gtk_table_attach_defaults(GTK_TABLE(table), data->account_box, 1, 2, 0, 1);
-	gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->account_box);
-	pidgin_set_accessible_label (data->account_box, label);
-	/* End of account box */
-
-	label = gtk_label_new_with_mnemonic(_("_Screen name:"));
+	gtk_table_attach_defaults(GTK_TABLE(table), data->account_box, 0, 2, 0, 1);
+
+	label = gtk_label_new_with_mnemonic(_("Buddy's _screen name:"));
 	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
 	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
 
@@ -6404,23 +6396,23 @@
 		gtk_entry_set_text(GTK_ENTRY(data->entry), username);
 	else
 		gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window),
-										  GTK_RESPONSE_OK, FALSE);
+		                                  GTK_RESPONSE_OK, FALSE);
 
 	gtk_entry_set_activates_default (GTK_ENTRY(data->entry), TRUE);
 	gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry);
 	pidgin_set_accessible_label (data->entry, label);
 
 	g_signal_connect(G_OBJECT(data->entry), "changed",
-					 G_CALLBACK(pidgin_set_sensitive_if_input),
-					 data->window);
-
-	label = gtk_label_new_with_mnemonic(_("A_lias:"));
+	                 G_CALLBACK(pidgin_set_sensitive_if_input),
+	                 data->window);
+
+	label = gtk_label_new_with_mnemonic(_("(Optional) A_lias:"));
 	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
 	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
 
 	data->entry_for_alias = gtk_entry_new();
 	gtk_table_attach_defaults(GTK_TABLE(table),
-							  data->entry_for_alias, 1, 2, 2, 3);
+	                          data->entry_for_alias, 1, 2, 2, 3);
 
 	if (alias != NULL)
 		gtk_entry_set_text(GTK_ENTRY(data->entry_for_alias), alias);
@@ -6432,7 +6424,7 @@
 	gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry_for_alias);
 	pidgin_set_accessible_label (data->entry_for_alias, label);
 
-	label = gtk_label_new_with_mnemonic(_("_Group:"));
+	label = gtk_label_new_with_mnemonic(_("Add buddy to _group:"));
 	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
 	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4);
 
Binary file pidgin/pixmaps/protocols/16/jabber.png has changed
--- a/pidgin/pixmaps/protocols/16/scalable/jabber.svg	Sat Mar 22 04:51:58 2008 +0000
+++ b/pidgin/pixmaps/protocols/16/scalable/jabber.svg	Sat Mar 22 04:56:03 2008 +0000
@@ -9,127 +9,293 @@
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="16px"
-   height="16px"
-   id="svg4239"
+   width="16"
+   height="16"
+   id="svg3302"
    sodipodi:version="0.32"
-   inkscape:version="0.44.1"
-   sodipodi:docbase="/home/hbons/GUI/Tango/Gaim Refresh/protocols/16/scalable"
-   sodipodi:docname="jabber.svg"
-   inkscape:export-filename="/home/hbons/GUI/Tango/Gaim Refresh/protocols/16/jabber.png"
+   inkscape:version="0.45.1"
+   sodipodi:docbase="/home/hbons/Desktop"
+   sodipodi:docname="xmpp16.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/hbons/Desktop/xmpp16.png"
    inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90">
+   inkscape:export-ydpi="90"
+   version="1.0">
   <defs
-     id="defs4241">
+     id="defs3304">
     <linearGradient
-       id="linearGradient2228"
+       id="linearGradient2234"
        inkscape:collect="always">
       <stop
-         id="stop2230"
+         id="stop2236"
          offset="0"
-         style="stop-color:#f56600;stop-opacity:1;" />
+         style="stop-color:#d9541e;stop-opacity:1" />
+      <stop
+         id="stop2238"
+         offset="1"
+         style="stop-color:#717311;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2218"
+       inkscape:collect="always">
+      <stop
+         id="stop2220"
+         offset="0"
+         style="stop-color:#033e6f;stop-opacity:1" />
       <stop
-         id="stop2232"
+         id="stop2222"
          offset="1"
-         style="stop-color:#f56600;stop-opacity:0;" />
+         style="stop-color:#0f97cb;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2209"
+       inkscape:collect="always">
+      <stop
+         id="stop2211"
+         offset="0"
+         style="stop-color:#439638;stop-opacity:1" />
+      <stop
+         id="stop2213"
+         offset="1"
+         style="stop-color:#05757c;stop-opacity:0;" />
     </linearGradient>
     <linearGradient
-       gradientUnits="userSpaceOnUse"
-       y2="17.595036"
-       x2="13.090998"
-       y1="0.78084093"
-       x1="13.090998"
-       id="linearGradient4544"
-       xlink:href="#linearGradient2222"
-       inkscape:collect="always" />
-    <radialGradient
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.842757,0,0,-0.35721,19.80716,14.19321)"
-       r="6.6449099"
-       fy="10.457643"
-       fx="10.748654"
-       cy="10.457643"
-       cx="10.748654"
-       id="radialGradient3156"
-       xlink:href="#linearGradient3150"
-       inkscape:collect="always" />
+       inkscape:collect="always"
+       id="linearGradient3417">
+      <stop
+         style="stop-color:#717311;stop-opacity:1;"
+         offset="0"
+         id="stop3419" />
+      <stop
+         style="stop-color:#717311;stop-opacity:0;"
+         offset="1"
+         id="stop3421" />
+    </linearGradient>
     <linearGradient
-       id="linearGradient3150"
-       inkscape:collect="always">
+       inkscape:collect="always"
+       id="linearGradient3409">
       <stop
-         id="stop3152"
+         style="stop-color:#9d9a0b;stop-opacity:1;"
          offset="0"
-         style="stop-color:#2e3436;stop-opacity:1;" />
+         id="stop3411" />
       <stop
-         id="stop3154"
+         style="stop-color:#9d9a0b;stop-opacity:0;"
          offset="1"
-         style="stop-color:#2e3436;stop-opacity:0;" />
+         id="stop3413" />
     </linearGradient>
     <linearGradient
-       id="linearGradient2222"
-       inkscape:collect="always">
+       inkscape:collect="always"
+       id="linearGradient3354">
       <stop
-         id="stop2224"
+         style="stop-color:#05757c;stop-opacity:1;"
          offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
+         id="stop3356" />
       <stop
-         id="stop2226"
+         style="stop-color:#05757c;stop-opacity:0;"
          offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
+         id="stop3358" />
     </linearGradient>
     <linearGradient
-       id="linearGradient2230"
-       inkscape:collect="always">
+       inkscape:collect="always"
+       id="linearGradient3344">
       <stop
-         id="stop4533"
+         style="stop-color:#2a919a;stop-opacity:1;"
          offset="0"
-         style="stop-color:#ffffff;stop-opacity:1;" />
+         id="stop3346" />
       <stop
-         id="stop2234"
+         style="stop-color:#2a919a;stop-opacity:0;"
          offset="1"
-         style="stop-color:#ffffff;stop-opacity:0;" />
+         id="stop3348" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3334">
+      <stop
+         style="stop-color:#f0a530;stop-opacity:1;"
+         offset="0"
+         id="stop3336" />
+      <stop
+         style="stop-color:#f0a530;stop-opacity:0;"
+         offset="1"
+         id="stop3338" />
     </linearGradient>
     <linearGradient
        inkscape:collect="always"
-       xlink:href="#linearGradient2230"
-       id="linearGradient4573"
+       xlink:href="#linearGradient3334"
+       id="linearGradient3340"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3344"
+       id="linearGradient3350"
+       x1="20.495712"
+       y1="28.410715"
+       x2="16.392857"
+       y2="19.196428"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3354"
+       id="linearGradient3360"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3334"
+       id="linearGradient3392"
+       gradientUnits="userSpaceOnUse"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3409"
+       id="linearGradient3415"
+       x1="25.053484"
+       y1="33.307236"
+       x2="34.703217"
+       y2="14.720429"
        gradientUnits="userSpaceOnUse"
-       x1="10.063863"
-       y1="-0.14116688"
-       x2="10.063863"
-       y2="7.1152339" />
+       gradientTransform="matrix(0.3406067,0,0,0.3395702,-1.7782608e-2,-0.3494314)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3417"
+       id="linearGradient3423"
+       x1="31.83737"
+       y1="20.841261"
+       x2="35.494415"
+       y2="22.154459"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3406067,0,0,0.3395702,-1.7782681e-2,-0.3494319)" />
+    <filter
+       inkscape:collect="always"
+       x="-0.49491513"
+       width="1.9898303"
+       y="-1.0582331"
+       height="3.1164663"
+       id="filter3871">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="5.4785069"
+         id="feGaussianBlur3873" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3354"
+       id="linearGradient3983"
+       gradientUnits="userSpaceOnUse"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795"
+       gradientTransform="matrix(0.3406067,0,0,0.3395702,-1.7782608e-2,-0.3494314)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3334"
+       id="linearGradient3989"
+       gradientUnits="userSpaceOnUse"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215" />
     <linearGradient
        inkscape:collect="always"
-       xlink:href="#linearGradient2228"
-       id="linearGradient4575"
+       xlink:href="#linearGradient3354"
+       id="linearGradient2228"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3406067,0,0,0.3395702,-0.3457386,-0.351183)"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3417"
+       id="linearGradient2242"
        gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.031957,0.969033)"
-       x1="2.9373798"
-       y1="13.076829"
-       x2="20.319405"
-       y2="13.076829" />
-    <radialGradient
+       gradientTransform="matrix(-0.3406067,0,0,0.3395702,16.015463,-0.3494319)"
+       x1="31.83737"
+       y1="20.841261"
+       x2="35.494415"
+       y2="22.154459" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2218"
+       id="linearGradient2244"
+       gradientUnits="userSpaceOnUse"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215"
+       gradientTransform="matrix(0.3406067,0,0,0.3698986,2.395e-3,-0.5863818)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2209"
+       id="linearGradient2248"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3406067,0,0,0.3698986,-0.3457389,1.3941659)"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3417"
+       id="linearGradient2250"
        gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.842757,5.698892e-16,-4.565819e-9,-0.35721,19.80716,14.19321)"
-       r="6.6449099"
-       fy="10.457643"
-       fx="10.748654"
-       cy="10.457643"
-       cx="10.748654"
-       id="radialGradient5480"
-       xlink:href="#linearGradient3150"
-       inkscape:collect="always" />
-    <radialGradient
+       gradientTransform="matrix(0.3406067,0,0,0.3698986,-1.5462741e-2,-0.5863823)"
+       x1="31.83737"
+       y1="20.841261"
+       x2="35.494415"
+       y2="22.154459" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3334"
+       id="linearGradient2252"
+       gradientUnits="userSpaceOnUse"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215"
+       gradientTransform="matrix(-0.3406067,0,0,0.3698986,15.999925,-0.5863818)" />
+    <linearGradient
        inkscape:collect="always"
-       xlink:href="#linearGradient3150"
-       id="radialGradient5491"
+       xlink:href="#linearGradient2209"
+       id="linearGradient2216"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3406067,0,0,0.3754611,0.1185465,-0.6525396)"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2209"
+       id="linearGradient2226"
        gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.842757,0,0,-0.35721,19.80716,14.19321)"
-       cx="10.748654"
-       cy="10.457643"
-       fx="10.748654"
-       fy="10.457643"
-       r="6.6449099" />
+       gradientTransform="matrix(-0.3406067,0,0,0.3698986,13.017783,-0.6058341)"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2234"
+       id="linearGradient2231"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3406067,0,0,0.3698986,2.025084e-2,-0.6190852)"
+       x1="30.893675"
+       y1="21.130915"
+       x2="37.48666"
+       y2="23.216526" />
   </defs>
   <sodipodi:namedview
      id="base"
@@ -138,20 +304,21 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="44.395604"
-     inkscape:cx="10.948505"
-     inkscape:cy="7.7364031"
+     inkscape:zoom="28"
+     inkscape:cx="21.256159"
+     inkscape:cy="8.9295837"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:grid-bbox="true"
      inkscape:document-units="px"
-     inkscape:window-width="1274"
-     inkscape:window-height="972"
+     inkscape:window-width="1434"
+     inkscape:window-height="823"
      inkscape:window-x="3"
-     inkscape:window-y="23"
-     inkscape:grid-points="true" />
+     inkscape:window-y="43"
+     width="16px"
+     height="16px" />
   <metadata
-     id="metadata4244">
+     id="metadata3307">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
@@ -166,26 +333,64 @@
      inkscape:label="Layer 1"
      inkscape:groupmode="layer">
     <path
-       style="fill:#c00;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
-       d="M 12,1 C 9.4778629,1 8.4418468,1.1716344 6.9718495,2.2497594 L 6.9718495,4.7492783 C 10.971849,0.74927826 18.750242,2.4985565 18.750241,8.4985565 C 18.750241,12.247835 13.751203,9.4966319 13.751203,18.496632 L 15.000962,18.496632 C 15.000962,10.496632 20,13.497594 20,8.4985565 C 20,2.9829807 14.494656,1 12,1 z M 7.5024063,13.497595 C 7.5024063,16.643684 12.501443,15.997113 12.501443,15.997113 L 12.501443,14.747354 C 12.501443,14.747354 8.7521657,15.358261 8.7521657,13.497595 L 7.5024063,13.497595 z "
-       id="rect2274"
-       sodipodi:nodetypes="cccsccszccccc"
-       transform="matrix(0.800154,0,0,0.800154,-3.00308,-0.800154)" />
+       style="fill:#0a6fa2;fill-opacity:1;stroke:#02396a;stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 15.5,2.5000001 L 10.454106,2.5327029 C 10.454106,4.6682012 8.4691474,12.778185 3.1541859,14.341671 C 9.641668,14.341671 15.5,7.1171759 15.5,2.5000001 z "
+       id="path2228"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;fill-opacity:1;stroke:url(#linearGradient2231);stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 15.5,2.5062012 L 9.5791052,2.5000001 C 9.5791052,8.214349 8.5048611,12.745482 3.1899,14.308968 C 9.6773816,14.308968 15.5,7.123377 15.5,2.5062012 z "
+       id="path3388"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.29670332;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3871)"
+       id="path3425"
+       sodipodi:cx="22.273863"
+       sodipodi:cy="36.736797"
+       sodipodi:rx="13.283506"
+       sodipodi:ry="6.2124381"
+       d="M 35.557369 36.736797 A 13.283506 6.2124381 0 1 1  8.9903564,36.736797 A 13.283506 6.2124381 0 1 1  35.557369 36.736797 z"
+       transform="matrix(0.3743374,0,0,0.1458475,-0.1571981,8.780618)" />
+    <path
+       style="fill:url(#linearGradient2252);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 14.997635,3.0728311 C 14.887455,4.1217876 13.42731,7.8391015 11.614614,10.013526 C 9.8225375,12.167186 7.1757566,13.602216 4.4938048,14.013055 C 6.5159292,13.016029 7.9668293,11.287886 8.900404,9.5049152 C 9.4616251,8.4330773 9.8347045,7.3512888 10.049952,6.3954548 C 10.244853,5.5299708 10.748164,3.6076606 10.677327,3.0472855 L 14.997635,3.0728311 z "
+       id="path3382"
+       sodipodi:nodetypes="cscsscc" />
+    <path
+       style="fill:#e96d1f;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 11.998273,3.0857646 L 9.853875,3.0746296 C 10.052724,5.704186 9.8431306,10.840842 5,13.99819 C 10.262132,13.127062 12.135446,6.14782 11.998273,3.0857646 z "
+       id="path3384"
+       sodipodi:nodetypes="cccc" />
     <path
-       style="fill:#c4a000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
-       d="M 10.245437,9.0009623 C 9.8446207,9.1304698 9.4469824,9.4315911 9.2910643,9.8252597 C 8.9015914,10.630275 9.0119643,11.546096 9,12.410727 C 9,12.607151 8.9956771,12.553817 8.9956771,12.750241 C 9.3290104,12.750241 9.9121032,12.750241 10.245437,12.750241 C 10.269943,11.947821 9.9451522,11.388849 10.051385,10.591009 C 10.099544,10.33424 10.295871,9.9149161 10.617745,10.051197 C 10.909947,10.219323 10.960351,10.594232 10.995034,10.898787 C 11.020383,11.243843 10.982638,11.58962 10.999054,11.934891 C 11.279504,12.093685 11.603216,11.943822 11.901485,12.002777 C 12.142024,11.75941 11.931494,11.395495 11.996911,11.098317 C 12.00242,10.729241 12.055537,10.314276 12.34596,10.053499 C 12.657741,9.9025341 12.879524,10.27981 12.942417,10.535993 C 13.058497,10.893135 12.269117,13.199046 12,14 C 12.333333,14 12.666667,14 13,14 C 13.329773,12.966834 13.673449,11.2866 13.994715,10.250722 C 13.949129,9.6432787 13.81357,9.604151 13.288033,9.225105 C 12.778167,8.8886263 12.031835,9.0485888 11.673365,9.5319351 C 11.368765,9.6559892 11.274467,9.1769481 11.001141,9.1256287 C 10.746476,9.0155125 10.521652,8.9697111 10.245437,9.0009623 z "
-       id="rect3156"
-       sodipodi:nodetypes="ccsccccsccccsccccccc"
-       transform="matrix(0.800154,0,0,0.800154,-3.197927,-1.202156)" />
+       style="opacity:0.4;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 14.328472,3.5879657 C 13.402352,7.5116178 11.050991,9.896006 7.9932059,11.841578 C 9.4009194,9.3771388 10.613796,8.3204791 10.426187,3.617359 L 14.328472,3.5879657 z "
+       id="path3390"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#0a6fa2;fill-opacity:1;stroke:#02396a;stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 0.50232,2.5000001 L 5.548214,2.5327029 C 5.548214,4.6682012 7.5331725,12.778185 12.848134,14.341671 C 6.3606519,14.341671 0.50232,7.1171759 0.50232,2.5000001 z "
+       id="path2230"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:url(#linearGradient2244);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 1.0046854,3.0728311 C 1.025579,4.1606915 2.5750102,7.8391015 4.3877063,10.013526 C 6.1797822,12.167186 8.8265635,13.602216 11.508516,14.013055 C 9.4863905,13.01603 8.0354905,11.287886 7.1019159,9.5049152 C 6.5406948,8.4330773 6.1676154,7.3512888 5.9523683,6.3954548 C 5.7574673,5.5299709 5.2541559,3.6076606 5.3249925,3.0472854 L 1.0046854,3.0728311 z "
+       id="path2236"
+       sodipodi:nodetypes="cscsscc" />
     <path
-       style="fill:#c00;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
-       d="M 3,11 C 3,13.517356 7,13 7,13 L 7,12 C 7.0000001,12 4,12.488819 4,11 L 3,11 z "
-       id="path5501"
-       transform="translate(0,1)" />
+       style="fill:#a0ce67;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 3.7118046,3.055775 L 6.0094407,3.1813771 C 5.9820727,4.0797021 5.9514165,10.838935 12,13.996284 C 5.4281278,13.125156 3.6296973,5.1178307 3.7118046,3.055775 z "
+       id="rect3326"
+       sodipodi:nodetypes="cccc" />
     <path
-       style="fill:#c00;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
-       d="M 3,11 C 3,13.517356 7,13 7,13 L 7,12 C 7.0000001,12 4,12.488819 4,11 L 3,11 z "
-       id="path5503"
-       transform="translate(0,3)" />
+       style="opacity:0.4;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 1.6738483,3.5879662 C 2.5999681,7.5116186 4.9513289,9.8960072 8.0091145,11.841579 C 6.6014005,9.3771399 5.3885239,8.3204801 5.5761331,3.6173594 L 1.6738483,3.5879662 z "
+       id="path2240"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;fill-opacity:1;stroke:url(#linearGradient2216);stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 0.63632979,2.5000002 L 6.7242835,2.6127543 C 6.3286085,4.7177198 7.6493245,12.913003 12.964286,14.500001 C 6.4768045,14.500001 0.63632979,7.1866089 0.63632979,2.5000002 z "
+       id="path3352"
+       sodipodi:nodetypes="cccc" />
   </g>
 </svg>
Binary file pidgin/pixmaps/protocols/22/jabber.png has changed
--- a/pidgin/pixmaps/protocols/22/scalable/jabber.svg	Sat Mar 22 04:51:58 2008 +0000
+++ b/pidgin/pixmaps/protocols/22/scalable/jabber.svg	Sat Mar 22 04:56:03 2008 +0000
@@ -2,49 +2,194 @@
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
 <svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:cc="http://creativecommons.org/ns#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:svg="http://www.w3.org/2000/svg"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/s odipodi-0.dtd"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    width="24"
    height="24"
-   id="svg2"
+   id="svg3302"
    sodipodi:version="0.32"
-   inkscape:version="0.43"
-   version="1.0"
-   sodipodi:docbase="/home/hbons/Desktop/Gaim Refresh/protocols"
-   sodipodi:docname="jabber.svg"
-   inkscape:export-filename="/home/hbons/Desktop/Gaim Refresh/protocols/jabber.png"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/hbons/Desktop"
+   sodipodi:docname="xmpp22.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/hbons/Desktop/xmpp22.png"
    inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90">
+   inkscape:export-ydpi="90"
+   version="1.0">
   <defs
-     id="defs4">
+     id="defs3304">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective48" />
+    <linearGradient
+       id="linearGradient2222"
+       inkscape:collect="always">
+      <stop
+         id="stop2224"
+         offset="0"
+         style="stop-color:#429538;stop-opacity:1" />
+      <stop
+         id="stop2226"
+         offset="1"
+         style="stop-color:#033e6f;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2214"
+       inkscape:collect="always">
+      <stop
+         id="stop2216"
+         offset="0"
+         style="stop-color:#033e6f;stop-opacity:1" />
+      <stop
+         id="stop2218"
+         offset="1"
+         style="stop-color:#14a9de;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3417">
+      <stop
+         style="stop-color:#df5219;stop-opacity:1"
+         offset="0"
+         id="stop3419" />
+      <stop
+         style="stop-color:#034072;stop-opacity:1"
+         offset="1"
+         id="stop3421" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3354">
+      <stop
+         style="stop-color:#05757c;stop-opacity:1;"
+         offset="0"
+         id="stop3356" />
+      <stop
+         style="stop-color:#05757c;stop-opacity:0;"
+         offset="1"
+         id="stop3358" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3344">
+      <stop
+         style="stop-color:#2a919a;stop-opacity:1;"
+         offset="0"
+         id="stop3346" />
+      <stop
+         style="stop-color:#2a919a;stop-opacity:0;"
+         offset="1"
+         id="stop3348" />
+    </linearGradient>
     <linearGradient
        inkscape:collect="always"
-       id="linearGradient3150">
+       id="linearGradient3334">
       <stop
-         style="stop-color:#2e3436;stop-opacity:1;"
+         style="stop-color:#034072;stop-opacity:1"
          offset="0"
-         id="stop3152" />
+         id="stop3336" />
       <stop
-         style="stop-color:#2e3436;stop-opacity:0;"
+         style="stop-color:#109cd3;stop-opacity:1"
          offset="1"
-         id="stop3154" />
+         id="stop3338" />
     </linearGradient>
-    <radialGradient
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2214"
+       id="linearGradient3340"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3344"
+       id="linearGradient3350"
+       x1="20.495712"
+       y1="28.410715"
+       x2="16.392857"
+       y2="18.982143"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3354"
+       id="linearGradient3360"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3334"
+       id="linearGradient3392"
+       gradientUnits="userSpaceOnUse"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215" />
+    <linearGradient
        inkscape:collect="always"
-       xlink:href="#linearGradient3150"
-       id="radialGradient3156"
-       cx="10.748654"
-       cy="10.457643"
-       fx="10.748654"
-       fy="10.457643"
-       r="6.6449099"
-       gradientTransform="matrix(-0.842757,5.698892e-16,-4.565819e-9,-0.35721,19.80716,14.19321)"
-       gradientUnits="userSpaceOnUse" />
+       xlink:href="#linearGradient3417"
+       id="linearGradient3423"
+       x1="31.736355"
+       y1="20.841261"
+       x2="35.292381"
+       y2="22.255474"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4696897,0,0,0.4693264,1.1291183,0.5593256)" />
+    <filter
+       inkscape:collect="always"
+       x="-0.49491513"
+       width="1.9898303"
+       y="-1.0582331"
+       height="3.1164663"
+       id="filter3871">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="5.4785069"
+         id="feGaussianBlur3873" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2222"
+       id="linearGradient2206"
+       gradientUnits="userSpaceOnUse"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795"
+       gradientTransform="matrix(0.4696897,0,0,0.4693264,0.7859883,0.5593256)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3334"
+       id="linearGradient2427"
+       gradientUnits="userSpaceOnUse"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215"
+       gradientTransform="matrix(-0.4731084,0,0,0.4693403,23.025142,0.6736289)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2214"
+       id="linearGradient2429"
+       gradientUnits="userSpaceOnUse"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215"
+       gradientTransform="matrix(0.4731084,0,0,0.4693403,0.7795066,0.6736289)" />
   </defs>
   <sodipodi:namedview
      id="base"
@@ -53,20 +198,29 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="20.899939"
-     inkscape:cx="7.7889959"
-     inkscape:cy="5.2722474"
-     inkscape:document-units="px"
+     inkscape:zoom="14"
+     inkscape:cx="11.10389"
+     inkscape:cy="13.373032"
      inkscape:current-layer="layer1"
      showgrid="true"
-     fill="#c4a000"
-     inkscape:window-width="872"
-     inkscape:window-height="589"
-     inkscape:window-x="12"
-     inkscape:window-y="42"
-     inkscape:grid-points="true" />
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1434"
+     inkscape:window-height="823"
+     inkscape:window-x="3"
+     inkscape:window-y="43"
+     inkscape:snap-bbox="true"
+     inkscape:snap-nodes="false"
+     objecttolerance="9"
+     gridtolerance="12">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2421"
+       visible="true"
+       enabled="true" />
+  </sodipodi:namedview>
   <metadata
-     id="metadata7">
+     id="metadata3307">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
@@ -77,28 +231,88 @@
     </rdf:RDF>
   </metadata>
   <g
+     id="layer1"
      inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <path
-       style="fill:#cc0000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
-       d="M 12,1 C 9.4778629,1 8.4699973,1.921875 7,3 L 7,5 C 11,1 19,3 19,9 C 19,14.410266 14,11 14,20 L 15,20 C 15,12 20,15 20,9 C 20,3.4844242 14.494656,1 12,1 z M 8,14.03125 C 8,17.177339 13,17 13,17 L 13,16.0625 C 13,16.0625 9.1099239,16.229722 9,14.03125 L 8,14.03125 z M 8,16.03125 C 8,19.177339 13,19 13,19 L 13,18.0625 C 13,18.0625 9.1099239,18.229722 9,16.03125 L 8,16.03125 z M 8,18.03125 C 8,21.177339 13,21 13,21 L 13,20.0625 C 13,20.0625 9.078674,20.229722 8.96875,18.03125 L 8,18.03125 z "
-       id="rect2274"
-       sodipodi:nodetypes="cccsccszccccccccccccccc" />
-    <path
-       style="fill:#c4a000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
-       d="M 10.1875,9 C 9.7866842,9.1295075 9.4469824,9.4315911 9.2910643,9.8252597 C 8.9015914,10.630275 9.0119643,11.546096 9,12.410727 C 9,12.607151 9,12.803576 9,13 C 9.3333333,13 9.6666667,13 10,13 C 10.024506,12.19758 9.9451522,11.388849 10.051385,10.591009 C 10.099544,10.33424 10.295871,9.9149161 10.617745,10.051197 C 10.909947,10.219323 10.960351,10.594232 10.995034,10.898787 C 11.020383,11.243843 10.982638,11.58962 10.999054,11.934891 C 11.279504,12.093685 11.603216,11.943822 11.901485,12.002777 C 12.142024,11.75941 11.931494,11.395495 11.996911,11.098317 C 12.00242,10.729241 12.055537,10.314276 12.34596,10.053499 C 12.657741,9.9025341 12.879524,10.27981 12.942417,10.535993 C 13.058497,10.893135 12.269117,13.199046 12,14 C 12.333333,14 12.666667,14 13,14 C 13.329773,12.966834 13.673449,11.938112 13.994715,10.902234 C 13.949129,10.294791 13.81357,9.604151 13.288033,9.225105 C 12.778167,8.8886263 12.031835,9.0485888 11.673365,9.5319351 C 11.368765,9.6559892 11.274467,9.1769481 11.001141,9.1256287 C 10.746476,9.0155125 10.463715,8.9687488 10.1875,9 z "
-       id="rect3156"
-       sodipodi:nodetypes="ccsccccsccccsccccccc" />
+     inkscape:groupmode="layer">
     <path
        sodipodi:type="arc"
-       style="opacity:0.4;fill:url(#radialGradient3156);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path3140"
-       sodipodi:cx="10.748654"
-       sodipodi:cy="10.457643"
-       sodipodi:rx="6.6449099"
-       sodipodi:ry="2.3675451"
-       d="M 17.393564 10.457643 A 6.6449099 2.3675451 0 1 1  4.1037445,10.457643 A 6.6449099 2.3675451 0 1 1  17.393564 10.457643 z"
-       transform="matrix(1.504911,0,0,1.055946,-5.175766,9.457294)" />
+       style="opacity:0.29670332;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3871)"
+       id="path3425"
+       sodipodi:cx="22.273863"
+       sodipodi:cy="36.736797"
+       sodipodi:rx="13.283506"
+       sodipodi:ry="6.2124381"
+       d="M 35.557369,36.736797 A 13.283506,6.2124381 0 1 1 8.9903564,36.736797 A 13.283506,6.2124381 0 1 1 35.557369,36.736797 z"
+       transform="matrix(0.5199608,0,0,0.1850564,0.5826339,12.558808)" />
+    <path
+       style="fill:#da6812;fill-opacity:1;stroke:#a24900;stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 22.499999,4.5000001 L 14.975448,6.4912682 C 15.521075,9.1224749 12.829223,17.516252 5.5000001,19.499999 C 14.446104,19.499999 22.499999,10.35826 22.499999,4.5000001 z"
+       id="path3380"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:url(#linearGradient2427);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 22.005002,4.971026 C 21.851961,7.7335015 19.92301,11.265451 16.933871,14.123162 C 14.261115,16.678402 10.768225,18.676617 7.0429489,19.197904 C 9.8517135,17.932843 11.867038,15.740114 13.163789,13.477819 C 13.943334,12.117834 14.259517,10.820984 14.558499,9.6081884 C 14.82922,8.5100321 14.983993,6.7178749 14.8856,6.0068516 L 22.005002,4.971026 z"
+       id="path3382"
+       sodipodi:nodetypes="cscsscc" />
+    <path
+       style="fill:#abbb25;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 18.868549,5.7525618 L 15.016096,6.7750535 C 15.049889,7.9148799 14.627471,15.172893 7.1591181,19.179048 C 15.27359,18.073731 18.969928,8.3689705 18.868549,5.7525618 z"
+       id="path3384"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;fill-opacity:1;stroke:url(#linearGradient3423);stroke-width:1.00000024;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 22.499999,4.5000003 L 14.317055,5.5583642 C 14.862682,8.1895711 12.829223,17.516254 5.4999998,19.500001 C 14.446104,19.500001 22.499999,10.358261 22.499999,4.5000003 z"
+       id="path3388"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#df5219;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 19.203087,5.4052024 L 15.293888,5.9416777 C 15.327681,7.0815041 14.627471,15.172893 7.1591181,19.179048 C 15.27359,18.073731 19.304466,8.0216111 19.203087,5.4052024 z"
+       id="path3386"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#e96d1f;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 17.202112,5.6933762 L 14.951055,6.0174391 C 14.984849,7.1572655 14.688699,15.172893 7.2203467,19.179048 C 15.706546,17.068001 18.393936,6.9484519 17.202112,5.6933762 z"
+       id="path2228"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="opacity:0.4;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 21.5,5.5000001 C 21.259562,7.8476013 19.283758,10.890908 16.721197,13.322762 C 14.636171,15.301438 12.341463,16.82458 9.4999988,17.5 C 11.488026,16.319811 12.990581,14.640432 13.991693,12.906761 C 14.701922,11.676826 14.851876,10.636782 15.125188,9.5362725 C 15.351957,8.6231762 15.486367,7.0468868 15.426863,6.3988159 L 21.5,5.5000001 z"
+       id="path3390"
+       sodipodi:nodetypes="cscsscc" />
+    <path
+       style="fill:#da6812;fill-opacity:1;stroke:#a24900;stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 1.5,4.5000001 L 9.0245518,6.4912682 C 8.4789251,9.1224749 11.170778,17.516252 18.499999,19.499999 C 9.5538954,19.499999 1.5,10.35826 1.5,4.5000001 z"
+       id="rect3321"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:url(#linearGradient2429);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 1.7996466,4.971026 C 1.9526876,7.7335015 3.8816385,11.265451 6.8707772,14.123162 C 9.5435341,16.678402 13.036424,18.676617 16.7617,19.197904 C 13.952935,17.932843 11.937611,15.740114 10.64086,13.477819 C 9.8613144,12.117834 9.3431008,10.745223 9.044119,9.532427 C 8.7733983,8.4342707 8.9721786,6.8188901 9.0705719,6.1078667 L 1.7996466,4.971026 z"
+       id="path3332"
+       sodipodi:nodetypes="cscsscc" />
+    <path
+       style="fill:#08aec5;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 4.936101,5.7525618 L 8.7885541,6.7750535 C 8.7547609,7.9148799 9.1771789,15.172893 16.645531,19.179048 C 8.5310592,18.073731 4.8347205,8.3689705 4.936101,5.7525618 z"
+       id="rect3326"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#429538;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 4.6746077,5.4242622 L 8.9905846,5.9416777 C 8.9567914,7.0815041 9.1771789,15.172893 16.645531,19.179048 C 8.5310592,18.073731 4.4776451,8.3725446 4.6746077,5.4242622 z"
+       id="path3342"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#a0ce67;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 6.8152887,5.6933762 L 8.9905846,6.0679467 C 8.9567914,7.2077731 9.1771789,15.172893 16.645531,19.179048 C 8.1593314,17.068001 5.6948939,7.1270234 6.8152887,5.6933762 z"
+       id="path2220"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;fill-opacity:1;stroke:url(#linearGradient2206);stroke-width:1.00000024;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 1.5000001,4.5000003 L 9.5252953,5.6445861 C 8.9796685,8.275793 11.170777,17.516254 18.5,19.500001 C 9.5538955,19.500001 1.5000001,10.358261 1.5000001,4.5000003 z"
+       id="path3352"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="opacity:0.4;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 2.6528401,5.6995163 C 3.1155917,8.0886161 4.8685432,11.14436 7.4405852,13.603314 C 9.0643917,15.155725 10.886287,16.515122 12.976833,17.423211 C 11.790214,16.318736 11.187637,15.199935 10.457851,13.926759 C 9.6473369,12.512747 9.1262733,11.255179 8.8124406,9.9821414 C 8.5924509,9.0897701 8.4306975,7.2046934 8.4453019,6.4949387 L 2.6528401,5.6995163 z"
+       id="path3366"
+       sodipodi:nodetypes="cscsscc" />
   </g>
 </svg>
Binary file pidgin/pixmaps/protocols/48/jabber.png has changed
--- a/pidgin/pixmaps/protocols/48/scalable/jabber.svg	Sat Mar 22 04:51:58 2008 +0000
+++ b/pidgin/pixmaps/protocols/48/scalable/jabber.svg	Sat Mar 22 04:56:03 2008 +0000
@@ -7,44 +7,159 @@
    xmlns:svg="http://www.w3.org/2000/svg"
    xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/s odipodi-0.dtd"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48"
-   height="48"
-   id="svg2"
+   width="48px"
+   height="48px"
+   id="svg3302"
    sodipodi:version="0.32"
-   inkscape:version="0.43"
-   version="1.0"
-   sodipodi:docbase="/home/hbons/Desktop/Gaim Refresh/protocols/48"
-   sodipodi:docname="jabber.svg"
-   inkscape:export-filename="/home/hbons/Desktop/Gaim Refresh/protocols/48/jabber.png"
+   inkscape:version="0.45.1"
+   sodipodi:docbase="/home/hbons/Desktop"
+   sodipodi:docname="xmpp.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/hbons/Desktop/xmpp.png"
    inkscape:export-xdpi="90"
    inkscape:export-ydpi="90">
   <defs
-     id="defs4">
+     id="defs3304">
+    <linearGradient
+       id="linearGradient2222"
+       inkscape:collect="always">
+      <stop
+         id="stop2224"
+         offset="0"
+         style="stop-color:#429538;stop-opacity:1" />
+      <stop
+         id="stop2226"
+         offset="1"
+         style="stop-color:#033e6f;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2214"
+       inkscape:collect="always">
+      <stop
+         id="stop2216"
+         offset="0"
+         style="stop-color:#033e6f;stop-opacity:1" />
+      <stop
+         id="stop2218"
+         offset="1"
+         style="stop-color:#14a9de;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3417">
+      <stop
+         style="stop-color:#df5219;stop-opacity:1"
+         offset="0"
+         id="stop3419" />
+      <stop
+         style="stop-color:#034072;stop-opacity:1"
+         offset="1"
+         id="stop3421" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3354">
+      <stop
+         style="stop-color:#05757c;stop-opacity:1;"
+         offset="0"
+         id="stop3356" />
+      <stop
+         style="stop-color:#05757c;stop-opacity:0;"
+         offset="1"
+         id="stop3358" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3344">
+      <stop
+         style="stop-color:#2a919a;stop-opacity:1;"
+         offset="0"
+         id="stop3346" />
+      <stop
+         style="stop-color:#2a919a;stop-opacity:0;"
+         offset="1"
+         id="stop3348" />
+    </linearGradient>
     <linearGradient
        inkscape:collect="always"
-       id="linearGradient3150">
+       id="linearGradient3334">
       <stop
-         style="stop-color:#2e3436;stop-opacity:1;"
+         style="stop-color:#034072;stop-opacity:1"
          offset="0"
-         id="stop3152" />
+         id="stop3336" />
       <stop
-         style="stop-color:#2e3436;stop-opacity:0;"
+         style="stop-color:#109cd3;stop-opacity:1"
          offset="1"
-         id="stop3154" />
+         id="stop3338" />
     </linearGradient>
-    <radialGradient
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2214"
+       id="linearGradient3340"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3344"
+       id="linearGradient3350"
+       x1="20.495712"
+       y1="28.410715"
+       x2="16.392857"
+       y2="18.982143"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3354"
+       id="linearGradient3360"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
        inkscape:collect="always"
-       xlink:href="#linearGradient3150"
-       id="radialGradient3156"
-       cx="10.748654"
-       cy="10.457643"
-       fx="10.748654"
-       fy="10.457643"
-       r="6.6449099"
-       gradientTransform="matrix(-0.842757,5.698892e-16,-4.565819e-9,-0.35721,19.80716,14.19321)"
+       xlink:href="#linearGradient3334"
+       id="linearGradient3392"
+       gradientUnits="userSpaceOnUse"
+       x1="5.0133924"
+       y1="12.455358"
+       x2="15.638392"
+       y2="30.098215" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3417"
+       id="linearGradient3423"
+       x1="31.736355"
+       y1="20.841261"
+       x2="35.292381"
+       y2="22.255474"
        gradientUnits="userSpaceOnUse" />
+    <filter
+       inkscape:collect="always"
+       x="-0.49491513"
+       width="1.9898303"
+       y="-1.0582332"
+       height="3.1164664"
+       id="filter3871">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="5.4785069"
+         id="feGaussianBlur3873" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2222"
+       id="linearGradient2206"
+       gradientUnits="userSpaceOnUse"
+       x1="18.734463"
+       y1="21.519651"
+       x2="15.642859"
+       y2="23.876795" />
   </defs>
   <sodipodi:namedview
      id="base"
@@ -53,20 +168,19 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="12.865422"
-     inkscape:cx="36.242166"
-     inkscape:cy="27.902049"
-     inkscape:document-units="px"
+     inkscape:zoom="4.9497475"
+     inkscape:cx="81.961371"
+     inkscape:cy="4.928944"
      inkscape:current-layer="layer1"
      showgrid="true"
-     fill="#c4a000"
-     inkscape:window-width="1268"
-     inkscape:window-height="971"
-     inkscape:window-x="6"
-     inkscape:window-y="21"
-     inkscape:grid-points="true" />
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1434"
+     inkscape:window-height="823"
+     inkscape:window-x="3"
+     inkscape:window-y="43" />
   <metadata
-     id="metadata7">
+     id="metadata3307">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
@@ -77,27 +191,98 @@
     </rdf:RDF>
   </metadata>
   <g
+     id="layer1"
      inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <path
-       style="fill:#cc0000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
-       d="M 24,2 C 18.807365,2 17.026465,3.6626839 14,5.8823531 L 14,10 C 22.235294,1.764706 38,5.6470591 38,18 C 38,29.138783 28,22.470588 28,41 L 30.058824,41 C 30.058824,24.529412 40.058824,30.352941 40.058824,18 C 40.058824,6.644403 29.136057,2 24,2 z M 15.941176,29 C 15.941176,35.477242 26,34.930147 26,34.930147 L 26,33 C 26,33 18.226314,33.526266 18,29 L 15.941176,29 z M 15.941176,33 C 15.941176,39.477242 26,38.930147 26,38.930147 L 26,37 C 26,37 18.226314,37.526266 18,33 L 15.941176,33 z M 16,37 C 16,43.477242 26,43 26,43 L 26,41.069852 C 26,41.069852 18.2208,41.526266 17.994485,37 L 16,37 z "
-       id="rect2274"
-       sodipodi:nodetypes="cccsccszccccccccccccccc" />
-    <path
-       style="fill:#c4a000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
-       d="M 20.161617,18.294117 C 18.837158,18.716828 18.034649,20.073961 17.86652,21.396305 C 17.566704,23.001306 17.783598,24.637723 17.706109,26.256709 C 18.178406,26.74717 18.906162,26.541219 19.493602,26.451051 C 19.999799,26.141712 19.813017,25.486447 19.777576,25.001048 C 19.781293,23.595629 19.627838,22.133672 20.142378,20.789743 C 20.516821,20.193958 21.591212,20.507672 21.620848,21.198886 C 21.964949,22.079664 21.788518,23.037079 21.795609,23.954889 C 22.054465,24.600774 22.909129,24.65156 23.480241,24.453639 C 24.054934,24.149471 23.989051,23.404949 23.898556,22.861551 C 23.823793,22.06117 23.971192,21.179299 24.515205,20.556991 C 25.109753,20.187056 25.87691,20.844001 25.807138,21.482646 C 25.909476,22.709477 25.312784,23.836254 25.05905,25.007889 C 24.695237,26.209261 24.294611,27.39902 23.893234,28.588235 C 24.579509,28.58822 25.265783,28.588235 25.952058,28.588235 C 26.630987,26.461124 27.33857,24.343171 28,22.210481 C 27.941608,20.951149 27.597138,19.565831 26.543641,18.767013 C 25.499857,18.073316 23.950948,18.380143 23.22075,19.389278 C 22.481031,19.46105 22.235329,18.512304 21.551013,18.423396 C 21.100438,18.297181 20.627451,18.262239 20.161617,18.294117 z "
-       id="rect3156" />
+     inkscape:groupmode="layer">
     <path
        sodipodi:type="arc"
-       style="opacity:0.4;fill:url(#radialGradient3156);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path3140"
-       sodipodi:cx="10.748654"
-       sodipodi:cy="10.457643"
-       sodipodi:rx="6.6449099"
-       sodipodi:ry="2.3675451"
-       d="M 17.393564 10.457643 A 6.6449099 2.3675451 0 1 1  4.1037445,10.457643 A 6.6449099 2.3675451 0 1 1  17.393564 10.457643 z"
-       transform="matrix(2.633595,0,0,1.900701,-4.8076,22.62316)" />
+       style="opacity:0.2967033;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3871)"
+       id="path3425"
+       sodipodi:cx="22.273863"
+       sodipodi:cy="36.736797"
+       sodipodi:rx="13.283506"
+       sodipodi:ry="6.2124381"
+       d="M 35.557369 36.736797 A 13.283506 6.2124381 0 1 1  8.9903564,36.736797 A 13.283506 6.2124381 0 1 1  35.557369 36.736797 z"
+       transform="matrix(1.0990312,0,0,0.3942904,-0.4161261,25.323157)" />
+    <path
+       style="fill:#da6812;fill-opacity:1;stroke:#a24900;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 45.5,8.3964466 L 29.479739,12.639268 C 30.641414,18.245615 24.910285,36.130347 9.305892,40.357143 C 28.352732,40.357143 45.5,20.878719 45.5,8.3964466 z "
+       id="path3380"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:type="inkscape:offset"
+       inkscape:radius="-0.56227452"
+       inkscape:original="M 1.53125 8.40625 C 1.53125 20.888522 18.671909 40.34375 37.71875 40.34375 C 22.114357 36.116954 16.369574 18.231347 17.53125 12.625 L 1.53125 8.40625 z "
+       style="fill:url(#linearGradient3392);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       id="path3382"
+       d="M 2.15625,9.15625 C 2.4797298,15.042119 6.5569158,22.567467 12.875,28.65625 C 18.524354,34.100573 25.907207,38.35807 33.78125,39.46875 C 27.844419,36.773348 23.584667,32.10141 20.84375,27.28125 C 19.19604,24.383597 18.100702,21.459043 17.46875,18.875 C 16.896533,16.535213 16.729528,14.546192 16.9375,13.03125 L 2.15625,9.15625 z "
+       transform="matrix(-1,0,0,1,47.020178,0)" />
+    <path
+       style="fill:#abbb25;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 38.234464,10.821428 L 30.091607,13 C 30.163035,15.428571 29.270178,30.892857 13.484463,39.428571 C 30.635869,37.073525 38.448749,16.396079 38.234464,10.821428 z "
+       id="path3384"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;fill-opacity:1;stroke:url(#linearGradient3423);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 45.5,8.3964466 L 29.479739,12.639268 C 30.641414,18.245615 24.910285,36.130347 9.305892,40.357143 C 28.352732,40.357143 45.5,20.878719 45.5,8.3964466 z "
+       id="path3388"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#df5219;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 38.941571,10.619397 L 30.091607,13 C 30.163035,15.428571 29.270178,30.892857 13.484463,39.428571 C 30.635869,37.073525 39.155856,16.194048 38.941571,10.619397 z "
+       id="path3386"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#e96d1f;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 34.3385,11.986693 L 30.221025,13 C 30.292453,15.428571 29.399596,30.892857 13.613881,39.428571 C 31.551001,34.930668 35.951771,13.823779 34.3385,11.986693 z "
+       id="path2228"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:type="inkscape:offset"
+       inkscape:radius="-1.0305283"
+       inkscape:original="M 1.53125 8.40625 C 1.53125 20.888522 18.671909 40.34375 37.71875 40.34375 C 22.114357 36.116954 16.369574 18.231347 17.53125 12.625 L 1.53125 8.40625 z "
+       style="opacity:0.4;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       id="path3390"
+       d="M 2.78125,9.8125 C 3.3466531,15.418621 7.1614784,22.50518 13.1875,28.3125 C 18.090567,33.03762 24.31812,36.855835 31,38.46875 C 26.325029,35.650434 22.791678,31.640043 20.4375,27.5 C 18.767353,24.562889 17.642711,21.596789 17,18.96875 C 16.46674,16.788257 16.328823,14.953857 16.46875,13.40625 L 2.78125,9.8125 z "
+       transform="matrix(-1,0,0,1,47.020178,0)" />
+    <path
+       style="fill:#da6812;fill-opacity:1;stroke:#a24900;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 1.5201775,8.3964466 L 17.540439,12.639268 C 16.378764,18.245615 22.109893,36.130347 37.714286,40.357143 C 18.667446,40.357143 1.5201775,20.878719 1.5201775,8.3964466 z "
+       id="rect3321"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:type="inkscape:offset"
+       inkscape:radius="-0.56227452"
+       inkscape:original="M 1.53125 8.40625 C 1.53125 20.888522 18.671909 40.34375 37.71875 40.34375 C 22.114357 36.116954 16.369574 18.231347 17.53125 12.625 L 1.53125 8.40625 z "
+       style="fill:url(#linearGradient3340);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       id="path3332"
+       d="M 2.15625,9.15625 C 2.4797298,15.042119 6.5569158,22.567467 12.875,28.65625 C 18.524354,34.100573 25.907207,38.35807 33.78125,39.46875 C 27.844419,36.773348 23.584667,32.10141 20.84375,27.28125 C 19.19604,24.383597 18.100702,21.459043 17.46875,18.875 C 16.896533,16.535213 16.729528,14.546192 16.9375,13.03125 L 2.15625,9.15625 z " />
+    <path
+       style="fill:#08aec5;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 8.7857143,10.821428 L 16.928571,13 C 16.857143,15.428571 17.75,30.892857 33.535715,39.428571 C 16.384309,37.073525 8.5714286,16.396079 8.7857143,10.821428 z "
+       id="rect3326"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#429538;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 8.1796228,10.821428 L 16.928571,13 C 16.857143,15.428571 17.75,30.892857 33.535715,39.428571 C 16.384309,37.073525 7.7633066,17.103186 8.1796228,10.821428 z "
+       id="path3342"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#a0ce67;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 12.811096,11.986693 L 16.928571,13 C 16.857143,15.428571 17.75,30.892857 33.535715,39.428571 C 15.598595,34.930668 11.197825,13.823779 12.811096,11.986693 z "
+       id="path2220"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;fill-opacity:1;stroke:url(#linearGradient2206);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 1.5201775,8.3964466 L 17.540439,12.639268 C 16.378764,18.245615 22.109893,36.130347 37.714286,40.357143 C 18.667446,40.357143 1.5201775,20.878719 1.5201775,8.3964466 z "
+       id="path3352"
+       sodipodi:nodetypes="cccc" />
+    <path
+       sodipodi:type="inkscape:offset"
+       inkscape:radius="-1.0305283"
+       inkscape:original="M 1.53125 8.40625 C 1.53125 20.888522 18.671909 40.34375 37.71875 40.34375 C 22.114357 36.116954 16.369574 18.231347 17.53125 12.625 L 1.53125 8.40625 z "
+       style="opacity:0.4;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1"
+       id="path3366"
+       d="M 2.78125,9.8125 C 3.3466531,15.418621 7.1614784,22.50518 13.1875,28.3125 C 18.090567,33.03762 24.31812,36.855835 31,38.46875 C 26.325029,35.650434 22.791678,31.640043 20.4375,27.5 C 18.767353,24.562889 17.642711,21.596789 17,18.96875 C 16.46674,16.788257 16.328823,14.953857 16.46875,13.40625 L 2.78125,9.8125 z " />
   </g>
 </svg>
--- a/pidgin/win32/winpidgin.c	Sat Mar 22 04:51:58 2008 +0000
+++ b/pidgin/win32/winpidgin.c	Sat Mar 22 04:56:03 2008 +0000
@@ -498,7 +498,7 @@
 		return;
 	}
 
-	if (!(msg_win = FindWindowEx(HWND_MESSAGE, NULL, TEXT("WinpidginMsgWinCls"), NULL))) {
+	if (!(msg_win = FindWindowEx(NULL, NULL, TEXT("WinpidginMsgWinCls"), NULL))) {
 		printf("Unable to find an instance of Pidgin to handle protocol message.\n");
 		return;
 	}
--- a/po/de.po	Sat Mar 22 04:51:58 2008 +0000
+++ b/po/de.po	Sat Mar 22 04:56:03 2008 +0000
@@ -11,8 +11,8 @@
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-15 09:48+0100\n"
-"PO-Revision-Date: 2008-03-15 09:48+0100\n"
+"POT-Creation-Date: 2008-03-21 21:24+0100\n"
+"PO-Revision-Date: 2008-03-21 21:23+0100\n"
 "Last-Translator: Jochen Kemnade <jochenkemnade@web.de>\n"
 "Language-Team: Deutsch <de@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -4440,6 +4440,9 @@
 msgid "Allow plaintext auth over unencrypted streams"
 msgstr "Erlaube Klartext-Authentifikation über einen unverschlüsselten Kanal"
 
+msgid "Use GSSAPI (Kerberos v5) for authentication"
+msgstr "GSSAPI (Kerberos v5) für Authentifizierung benutzen"
+
 msgid "Connect port"
 msgstr "Verbindungsport"
 
@@ -9988,9 +9991,6 @@
 "auseinandernehmen, wenn Sie auf 'Expandieren' im Kontextmenü des Kontakts "
 "klicken"
 
-msgid "_Merge"
-msgstr "_Zusammenführen"
-
 msgid "Room _List"
 msgstr "Ra_umliste"
 
@@ -10344,26 +10344,17 @@
 msgid "/Buddies/Show/Protocol Icons"
 msgstr "/Buddys/Anzeigen/Protokoll-Icons"
 
-msgid ""
-"Please enter the screen name of the person you would like to add to your "
-"buddy list. You may optionally enter an alias, or nickname,  for the buddy. "
-"The alias will be displayed in place of the screen name whenever possible.\n"
-msgstr ""
-"Bitte geben Sie den Benutzernamen der Person ein, die Sie zur Buddy-Liste "
-"hinzufügen möchten. Sie können optional einen Alias oder Spitzname für den "
-"Buddy eingeben. Der Alias wird anstelle des Benutzernamens ausgegeben,  wann "
-"immer es möglich ist.\n"
-
-#. Set up stuff for the account box
-msgid "A_ccount:"
-msgstr "_Konto:"
-
-#. End of account box
-msgid "_Screen name:"
-msgstr "_Benutzername:"
-
-msgid "A_lias:"
-msgstr "A_lias:"
+msgid "Add a buddy.\n"
+msgstr "Einen Buddy hinzufügen.\n"
+
+msgid "Buddy's _screen name:"
+msgstr "_Benutzername des Buddys:"
+
+msgid "(Optional) A_lias:"
+msgstr "(Optionaler) A_lias:"
+
+msgid "Add buddy to _group:"
+msgstr "Buddy zu folgender Gruppe hinzufügen:"
 
 msgid "This protocol does not support chat rooms."
 msgstr "Dieses Protokoll unterstützt keine Chaträume."
@@ -10380,6 +10371,9 @@
 "Bitte geben Sie einen Alias und geeignete Informationen über den Chat ein, "
 "den Sie in Ihre Buddy-Liste aufnehmen wollen.\n"
 
+msgid "A_lias:"
+msgstr "A_lias:"
+
 msgid "Auto_join when account becomes online."
 msgstr "Automatisch _beitreten, wenn das Konto online geht."