changeset 32649:626efe139f98

propagate from branch 'im.pidgin.pidgin' (head c22777dae7e766426b17df35dbf42ba6d49bf820) to branch 'im.pidgin.cpw.qulogic.gtk3' (head 1887cd5f7ea1e4bc0950747da36d56d618ecd105)
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 12 Feb 2011 23:54:14 +0000 (2011-02-12)
parents a7397a3d67ef (current diff) 1b1f9d6b25d0 (diff)
children 20af3cc69543
files configure.ac pidgin/gtkutils.c pidgin/plugins/vvconfig.c
diffstat 111 files changed, 4232 insertions(+), 3697 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Sun Jan 09 23:32:10 2011 +0000
+++ b/COPYRIGHT	Sat Feb 12 23:54:14 2011 +0000
@@ -81,6 +81,7 @@
 Norbert Buchmuller
 Johannes Buchner
 Sean Burke
+Gabriel Burt
 Thomas Butter
 Trevor Caira
 Andrea Canciani
@@ -131,6 +132,7 @@
 Florian Delizy
 Jiri Denemark
 Vinicius Depizzol
+Marc Dequ竪nes
 Philip Derrin
 Taso N. Devetzis
 Balwinder Singh Dheeman
@@ -279,6 +281,7 @@
 Joe LaPenna
 Steve L叩posi
 Daniel Larsson
+Julia Lawall
 Peter Lawler
 Vadim Lebedev
 Ho-seok Lee
@@ -377,6 +380,7 @@
 Riley Patterson
 Havoc Pennington
 Ted Percival
+Hugo Pereira Da Costa
 Eduardo P辿rez
 Matt Perry
 Ani Peter
@@ -411,6 +415,7 @@
 Etan Reisner
 David Reiss
 Luoh Ren-Shan
+Noa Resare
 Daniele Ricci
 Kristian Rietveld
 Pekka Riikonen
@@ -580,6 +585,7 @@
 Timmy Yee
 Li Yuan
 Yuriy Yevgrafov
+Jan Zachorowski
 Nickolai Zeldovich
 Tom Zickel
 Marco Ziech
--- a/ChangeLog	Sun Jan 09 23:32:10 2011 +0000
+++ b/ChangeLog	Sat Feb 12 23:54:14 2011 +0000
@@ -1,14 +1,29 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
-version 2.7.10 (??/??/????):
+version 2.7.11 (??/??/????):
+	General:
+	* Our bundled libgadu should now build on HP-UX.
+
+version 2.7.10 (02/06/2011):
 	General:
 	* Force video sources to all have the same capabilities.  This reduces the
 	  number of times video must be scaled down, saving CPU time. (Jakub Adam)
 	  (half of #13095)
 	* Starting multiple video calls and ending one no longer causes the other
-	  calls to stop sending audio and video. (Jakub Adam) (#12758)
+	  calls to stop sending audio and video. (Jakub Adam) (#12758, #13237)
 	* Perl bindings now respect LDFLAGS. (Peter Volkov, Markos Chandras)
 	  (#12638)
+	* Added AddTrust External Root CA.  (#11554)
+	* Resolve some issues validating X.509 certificates signed off the CAcert
+	  Class 3 intermediate cert when using the GnuTLS SSL/TLS plugin.
+
+	Gadu-Gadu:
+	* Don't drop whole messages when text is colored. (Jan Zachorowski)
+	  (#13259)
+
+	Groupwise:
+	* Don't show two windows when using "Get Info" on a buddy. (Gabriel Burt;
+	  Novell, Inc.) (#13108)
 
 	IRC:
 	* Don't send ISON messages longer than 512 bytes. (Jeffrey Honig) (#9692)
@@ -21,16 +36,25 @@
 	  Samstag) (#13073)
 	* Fixed bugs in purple_str_to_time() that caused the most recent 'make
 	  check' failures.  (Nader Morshed) (#13131)
+	* Correct an issue that caused some UIs other than Pidgin or Finch to
+	  leave a buddy in the "is typing" state.  (Jan Kaluza)
+	* Fix potential information disclosure issues in the Cipher code.  (Julia
+	  Lawall)
 
 	Pidgin:
 	* Support using the Page Up and Page Down keys on the numeric keypad in
 	  the conversation window.  (Ryan Flegel) (#13127)
 	* Fix a few memory leaks. (Nader Morshed) (#13162)
 	* Support rendering strikethrough when received as in-line CSS. (#13168)
+	* Editable comboboxes are now more friendly to some GTK+ themes. (Hugo
+	  Pereira Da Costa) (#13164).
 
 	Plugins:
 	* The Voice/Video Settings plugin no longer resets selected devices to
 	  defaults. (Jakub Adam) (#13044)
+	* The Voice/Video Settings plugin no longer crashes when a stored device
+	  name is not found in the list of available devices. (Jakub Adam)
+	  (#13238)
 	* The Autoaccept plugin now allows disabling filename escaping. (Rok
 	  Mandeljc) (half of #11459)
 	* The Autoaccept plugin now allows choosing Reject/Ask/Accept for
@@ -42,6 +66,11 @@
 	XMPP:
 	* Don't crash when receiving an unexpected/invalid jingle transport type.
 	  (Nikita Kozlov) (#13136)
+	* Handle Connection: Close headers for BOSH, when the server does not
+	  terminate the connection itself. (#13008)
+	* Improved parsing for DIGEST-MD5, which should resolve issues
+	  connecting to some jabberd2 servers.  This corrects an issue parsing
+	  one-character or empty elements. (Noa Resare) (#a14514)
 
 	Yahoo!/Yahoo! JAPAN:
 	* Fix a crash when an account disconnects before a p2p session is
@@ -927,7 +956,7 @@
 	  from you on MSN.
 	* Support sending an invite message to buddies when requesting
 	  authorization from them on MSN.
-	* Timeout switchboard connections aggressively (60 seconds).
+	* Timeout switchboard connections after 60 seconds (msn-pecan devs).
 
 	XMPP:
 	* Voice & Video support with Jingle (XEP-0166, 0167, 0176, & 0177),
--- a/ChangeLog.API	Sun Jan 09 23:32:10 2011 +0000
+++ b/ChangeLog.API	Sat Feb 12 23:54:14 2011 +0000
@@ -1,6 +1,11 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
-version 2.7.9 (??/??/????):
+version 2.7.11 (??/??/????):
+
+version 2.7.10 (02/06/2011):
+	* No changes
+
+version 2.7.9 (12/26/2010):
 	* No changes
 
 version 2.7.8 (12/19/2010):
--- a/NEWS	Sun Jan 09 23:32:10 2011 +0000
+++ b/NEWS	Sat Feb 12 23:54:14 2011 +0000
@@ -2,7 +2,13 @@
 
 Our development blog is available at: http://planet.pidgin.im
 
-2.7.10 (??/??/????):
+2.7.11 (??/??/????):
+
+2.7.10 (02/06/2011):
+	John: It's release time again.  This release contains a bunch of stuff
+	committed from Trac.  This is another "thank a patch writer" release.
+	Unfortunately, no one has fixed our wonderful MSN issues yet.  There is
+	a tiny security fix in this release, as well.
 
 2.7.9 (12/26/2010):
 	John: Just a quick release for a security fix here.  Elliott has not
--- a/configure.ac	Sun Jan 09 23:32:10 2011 +0000
+++ b/configure.ac	Sat Feb 12 23:54:14 2011 +0000
@@ -46,7 +46,7 @@
 m4_define([purple_lt_current], [7])
 m4_define([purple_major_version], [2])
 m4_define([purple_minor_version], [7])
-m4_define([purple_micro_version], [10])
+m4_define([purple_micro_version], [11])
 m4_define([purple_version_suffix], [devel])
 m4_define([purple_version],
           [purple_major_version.purple_minor_version.purple_micro_version])
@@ -55,7 +55,7 @@
 m4_define([gnt_lt_current], [8])
 m4_define([gnt_major_version], [2])
 m4_define([gnt_minor_version], [8])
-m4_define([gnt_micro_version], [6])
+m4_define([gnt_micro_version], [7])
 m4_define([gnt_version_suffix], [devel])
 m4_define([gnt_version],
           [gnt_major_version.gnt_minor_version.gnt_micro_version])
@@ -329,7 +329,7 @@
 dnl #######################################################################
 dnl # Check for GLib 2.12 (required)
 dnl #######################################################################
-PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.12.0 gio-2.0 gobject-2.0 gmodule-2.0 gthread-2.0], , [
+PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.12.0 gobject-2.0 gmodule-2.0 gthread-2.0], , [
 	AC_MSG_RESULT(no)
 	AC_MSG_ERROR([
 
--- a/libpurple/certificate.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/certificate.c	Sat Feb 12 23:54:14 2011 +0000
@@ -1602,7 +1602,7 @@
 	GSList *ca_crts, *cur;
 	GByteArray *last_fpr, *ca_fpr;
 	gboolean valid = FALSE;
-	gchar *ca_id;
+	gchar *ca_id, *ca2_id;
 
 	peer_crt = (PurpleCertificate *) chain->data;
 
@@ -1619,7 +1619,6 @@
 		return;
 	} /* if (self signed) */
 
-	/* Next, attempt to verify the last certificate against a CA */
 	ca = purple_certificate_find_pool(x509_tls_cached.scheme_name, "ca");
 
 	/* Next, check that the certificate chain is valid */
@@ -1669,6 +1668,9 @@
 		return;
 	} /* if (signature chain not good) */
 
+	/* Next, attempt to verify the last certificate is signed by a trusted
+	 * CA, or is a trusted CA (based on fingerprint).
+	 */
 	/* If, for whatever reason, there is no Certificate Authority pool
 	   loaded, we'll verify the subject name and then warn about thsi. */
 	if ( !ca ) {
@@ -1684,27 +1686,31 @@
 
 	end_crt = g_list_last(chain)->data;
 
-	/* Attempt to look up the last certificate's issuer */
-	ca_id = purple_certificate_get_issuer_unique_id(end_crt);
+	/* Attempt to look up the last certificate, and the last certificate's
+	 * issuer. 
+	 */
+	ca_id  = purple_certificate_get_issuer_unique_id(end_crt);
+	ca2_id = purple_certificate_get_unique_id(end_crt);
 	purple_debug_info("certificate/x509/tls_cached",
 			  "Checking for a CA with DN=%s\n",
 			  ca_id);
-	ca_crts = x509_ca_get_certs(ca_id);
+	purple_debug_info("certificate/x509/tls_cached",
+			  "Also checking for a CA with DN=%s\n",
+			  ca2_id);
+	ca_crts = g_slist_concat(x509_ca_get_certs(ca_id), x509_ca_get_certs(ca2_id));
+	g_free(ca_id);
+	g_free(ca2_id);
 	if ( NULL == ca_crts ) {
 		flags |= PURPLE_CERTIFICATE_CA_UNKNOWN;
 
 		purple_debug_warning("certificate/x509/tls_cached",
-				  "Certificate Authority with DN='%s' not "
-				  "found. I'll prompt the user, I guess.\n",
-				  ca_id);
-		g_free(ca_id);
+				  "No Certificate Authorities with either DN found "
+				  "found. I'll prompt the user, I guess.\n");
 
 		x509_tls_cached_check_subject_name(vrq, flags);
 		return;
 	}
 
-	g_free(ca_id);
-
 	/*
 	 * Check the fingerprints; if they match, then this certificate *is* one
 	 * of the designated "trusted roots", and we don't need to verify the
@@ -1714,10 +1720,6 @@
 	 *
 	 * If the fingerprints don't match, we'll fall back to checking the
 	 * signature.
-	 *
-	 * GnuTLS doesn't seem to include the final root in the verification
-	 * list, so this check will never succeed.  NSS *does* include it in
-	 * the list, so here we are.
 	 */
 	last_fpr = purple_certificate_get_fingerprint_sha1(end_crt);
 	for (cur = ca_crts; cur; cur = cur->next) {
--- a/libpurple/cipher.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/cipher.c	Sat Feb 12 23:54:14 2011 +0000
@@ -249,7 +249,7 @@
 	purple_cipher_context_reset(context, NULL);
 
 	md5_context = purple_cipher_context_get_data(context);
-	memset(md5_context, 0, sizeof(md5_context));
+	memset(md5_context, 0, sizeof(*md5_context));
 
 	g_free(md5_context);
 	md5_context = NULL;
@@ -705,7 +705,7 @@
 	purple_cipher_context_reset(context, NULL);
 
 	md4_context = purple_cipher_context_get_data(context);
-	memset(md4_context, 0, sizeof(md4_context));
+	memset(md4_context, 0, sizeof(*md4_context));
 
 	g_free(md4_context);
 	md4_context = NULL;
@@ -1356,7 +1356,7 @@
 	struct _des_ctx *des_context;
 
 	des_context = purple_cipher_context_get_data(context);
-	memset(des_context, 0, sizeof(des_context));
+	memset(des_context, 0, sizeof(*des_context));
 
 	g_free(des_context);
 	des_context = NULL;
@@ -1706,7 +1706,7 @@
 	struct _des3_ctx *des3_context;
 
 	des3_context = purple_cipher_context_get_data(context);
-	memset(des3_context, 0, sizeof(des3_context));
+	memset(des3_context, 0, sizeof(*des3_context));
 
 	g_free(des3_context);
 	des3_context = NULL;
@@ -2382,7 +2382,7 @@
 	struct RC4Context *rc4_ctx;
 
 	rc4_ctx = purple_cipher_context_get_data(context);
-	memset(rc4_ctx, 0, sizeof(rc4_ctx));
+	memset(rc4_ctx, 0, sizeof(*rc4_ctx));
 
 	g_free(rc4_ctx);
 	rc4_ctx = NULL;
@@ -2828,7 +2828,7 @@
 	if(cipher->ops && cipher->ops->uninit)
 		cipher->ops->uninit(context);
 
-	memset(context, 0, sizeof(context));
+	memset(context, 0, sizeof(*context));
 	g_free(context);
 	context = NULL;
 }
--- a/libpurple/conversation.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/conversation.c	Sat Feb 12 23:54:14 2011 +0000
@@ -999,12 +999,6 @@
 		}
 	}
 
-	if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) {
-		if ((flags & PURPLE_MESSAGE_RECV) == PURPLE_MESSAGE_RECV) {
-			purple_conv_im_set_typing_state(PURPLE_CONV_IM(conv), PURPLE_NOT_TYPING);
-		}
-	}
-
 	if (ops && ops->write_conv)
 		ops->write_conv(conv, who, alias, displayed, flags, mtime);
 
@@ -1229,6 +1223,10 @@
 		c->ui_ops->write_im(c, who, message, flags, mtime);
 	else
 		purple_conversation_write(c, who, message, flags, mtime);
+
+	if ((flags & PURPLE_MESSAGE_RECV) == PURPLE_MESSAGE_RECV) {
+		purple_conv_im_set_typing_state(im, PURPLE_NOT_TYPING);
+	}
 }
 
 gboolean purple_conv_present_error(const char *who, PurpleAccount *account, const char *what)
--- a/libpurple/media/backend-fs2.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/media/backend-fs2.c	Sat Feb 12 23:54:14 2011 +0000
@@ -155,6 +155,44 @@
 {
 }
 
+static gboolean
+event_probe_cb(GstPad *srcpad, GstEvent *event, gboolean release_pad)
+{
+	if (GST_EVENT_TYPE(event) == GST_EVENT_CUSTOM_DOWNSTREAM
+		&& gst_event_has_name(event, "purple-unlink-tee")) {
+
+		const GstStructure *s = gst_event_get_structure(event);
+
+		gst_pad_unlink(srcpad, gst_pad_get_peer(srcpad));
+
+		gst_pad_remove_event_probe(srcpad,
+			g_value_get_uint(gst_structure_get_value(s, "handler-id")));
+
+		if (g_value_get_boolean(gst_structure_get_value(s, "release-pad")))
+			gst_element_release_request_pad(GST_ELEMENT_PARENT(srcpad), srcpad);
+
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+static void
+unlink_teepad_dynamic(GstPad *srcpad, gboolean release_pad)
+{
+	guint id = gst_pad_add_event_probe(srcpad, G_CALLBACK(event_probe_cb), NULL);
+
+	if (GST_IS_GHOST_PAD(srcpad))
+		srcpad = gst_ghost_pad_get_target(GST_GHOST_PAD(srcpad));
+
+	gst_element_send_event(gst_pad_get_parent_element(srcpad),
+		gst_event_new_custom(GST_EVENT_CUSTOM_DOWNSTREAM,
+			gst_structure_new("purple-unlink-tee",
+				"release-pad", G_TYPE_BOOLEAN, release_pad,
+				"handler-id", G_TYPE_UINT, id,
+				NULL)));
+}
+
 static void
 purple_media_backend_fs2_dispose(GObject *obj)
 {
@@ -179,7 +217,7 @@
 					g_list_delete_link(sessions, sessions)) {
 				PurpleMediaBackendFs2Session *session = sessions->data;
 				if (session->srcpad) {
-					gst_pad_set_blocked(session->srcpad, TRUE);
+					unlink_teepad_dynamic(session->srcpad, FALSE);
 					gst_object_unref(session->srcpad);
 					session->srcpad = NULL;
 				}
--- a/libpurple/mediamanager.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/mediamanager.c	Sat Feb 12 23:54:14 2011 +0000
@@ -400,7 +400,6 @@
 	GstIteratorResult result;
 
 	gst_element_release_request_pad(GST_ELEMENT_PARENT(pad), pad);
-	gst_pad_set_blocked(pad, FALSE);
 
 	iter = gst_element_iterate_src_pads(parent);
 
--- a/libpurple/protocols/gg/gg.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/gg/gg.c	Sat Feb 12 23:54:14 2011 +0000
@@ -1464,6 +1464,10 @@
 				increased_len += 4;
 				under = FALSE;
 			}
+
+			if (actformat->font & GG_FONT_COLOR) {
+				cformats += sizeof(struct gg_msg_richtext_color);
+			}
 		}
 
 		msg = message->str;
--- a/libpurple/protocols/gg/lib/libgadu.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/gg/lib/libgadu.h	Sat Feb 12 23:54:14 2011 +0000
@@ -117,7 +117,7 @@
 typedef unsigned short uint16_t;
 typedef unsigned int   uint32_t;
 
-#if !defined(__CYGWIN__) && !defined(__SunOS)
+#if !defined(__CYGWIN__) && !defined(__SunOS) && !defined(_INCLUDE_HPUX_SOURCE)
 #define __int8_t_defined
 typedef   signed char    int8_t;
 typedef   signed short  int16_t;
--- a/libpurple/protocols/jabber/Makefile.am	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/jabber/Makefile.am	Sat Feb 12 23:54:14 2011 +0000
@@ -11,6 +11,7 @@
 			  auth.c \
 			  auth.h \
 			  auth_digest_md5.c \
+			  auth_digest_md5.h \
 			  auth_plain.c \
 			  auth_scram.c \
 			  auth_scram.h \
--- a/libpurple/protocols/jabber/auth_cyrus.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/jabber/auth_cyrus.c	Sat Feb 12 23:54:14 2011 +0000
@@ -520,9 +520,12 @@
 		g_free(dec_in);
 
 		if (js->sasl_state != SASL_OK) {
-			/* This should never happen! */
+			/* This happens when the server sends back jibberish
+			 * in the "additional data with success" case.
+			 * Seen with Wildfire 3.0.1.
+			 */
 			*error = g_strdup(_("Invalid response from server"));
-			g_return_val_if_reached(JABBER_SASL_STATE_FAIL);
+			return JABBER_SASL_STATE_FAIL;
 		}
 	}
 
--- a/libpurple/protocols/jabber/auth_digest_md5.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/jabber/auth_digest_md5.c	Sat Feb 12 23:54:14 2011 +0000
@@ -27,6 +27,7 @@
 #include "util.h"
 #include "xmlnode.h"
 
+#include "auth_digest_md5.h"
 #include "auth.h"
 #include "jabber.h"
 
@@ -43,7 +44,7 @@
 }
 
 /* Parts of this algorithm are inspired by stuff in libgsasl */
-static GHashTable* parse_challenge(const char *challenge)
+GHashTable* jabber_auth_digest_md5_parse(const char *challenge)
 {
 	const char *token_start, *val_start, *val_end, *cur;
 	GHashTable *ret = g_hash_table_new_full(g_str_hash, g_str_equal,
@@ -77,12 +78,12 @@
 					val_start++;
 
 				val_end = cur;
-				while (val_end != val_start && (*val_end == ' ' || *val_end == ',' || *val_end == '\t'
+				while (val_end >= val_start && (*val_end == ' ' || *val_end == ',' || *val_end == '\t'
 						|| *val_end == '\r' || *val_end == '\n'
 						|| *val_end == '"'  || *val_end == '\0'))
 					val_end--;
 
-				if (val_start != val_end)
+				if (val_end - val_start + 1 >= 0)
 					value = g_strndup(val_start, val_end - val_start + 1);
 			}
 
@@ -186,7 +187,7 @@
 			dec_in != NULL ? strlen(dec_in) : 0,
 			dec_in != NULL  ? dec_in : "(null)");
 
-	parts = parse_challenge(dec_in);
+	parts = jabber_auth_digest_md5_parse(dec_in);
 
 	if (g_hash_table_lookup(parts, "rspauth")) {
 		char *rspauth = g_hash_table_lookup(parts, "rspauth");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/protocols/jabber/auth_digest_md5.h	Sat Feb 12 23:54:14 2011 +0000
@@ -0,0 +1,39 @@
+/**
+ * @file auth_digest_md5.h Implementation of SASL DIGEST-MD5 authentication
+ *
+ * purple
+ *
+ * Purple is the legal property of its developers, whose names are too numerous
+ * to list here.  Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
+ */
+#ifndef PURPLE_JABBER_AUTH_DIGEST_MD5_H_
+#define PURPLE_JABBER_AUTH_DIGEST_MD5_H_
+
+#include "internal.h"
+
+/*
+ * Every function in this file is ONLY exposed for tests.
+ * DO NOT USE ANYTHING HERE OR YOU WILL BE SENT TO THE PIT OF DESPAIR.
+ */
+
+/*
+ * Parse a DIGEST-MD5 challenge.
+ */
+GHashTable *jabber_auth_digest_md5_parse(const char *challenge);
+
+#endif /* PURPLE_JABBER_AUTH_DIGEST_MD5_H_ */
--- a/libpurple/protocols/jabber/bosh.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/jabber/bosh.c	Sat Feb 12 23:54:14 2011 +0000
@@ -108,8 +108,27 @@
 	int requests; /* number of outstanding HTTP requests */
 
 	gboolean headers_done;
+	gboolean close;
+};
 
-};
+static void
+debug_dump_http_connections(PurpleBOSHConnection *conn)
+{
+	int i;
+
+	g_return_if_fail(conn != NULL);
+
+	for (i = 0; i < NUM_HTTP_CONNECTIONS; ++i) {
+		PurpleHTTPConnection *httpconn = conn->connections[i];
+		if (httpconn == NULL)
+			purple_debug_misc("jabber", "BOSH %p->connections[%d] = (nil)\n",
+			                  conn, i);
+		else
+			purple_debug_misc("jabber", "BOSH %p->connections[%d] = %p, state = %d"
+			                  ", requests = %d\n", conn, i, httpconn,
+			                  httpconn->state, httpconn->requests);
+	}
+}
 
 static void http_connection_connect(PurpleHTTPConnection *conn);
 static void http_connection_send_request(PurpleHTTPConnection *conn,
@@ -263,18 +282,8 @@
 {
 	int i;
 
-	if (purple_debug_is_verbose()) {
-		for (i = 0; i < NUM_HTTP_CONNECTIONS; ++i) {
-			PurpleHTTPConnection *httpconn = conn->connections[i];
-			if (httpconn == NULL)
-				purple_debug_misc("jabber", "BOSH %p->connections[%d] = (nil)\n",
-				                  conn, i);
-			else
-				purple_debug_misc("jabber", "BOSH %p->connections[%d] = %p, state = %d"
-				                  ", requests = %d\n", conn, i, httpconn,
-				                  httpconn->state, httpconn->requests);
-		}
-	}
+	if (purple_debug_is_verbose())
+		debug_dump_http_connections(conn);
 
 	/* Easy solution: Does everyone involved support pipelining? Hooray! Just use
 	 * one TCP connection! */
@@ -297,11 +306,23 @@
 			return NULL;
 	}
 
-	/* Third loop, look for one that's NULL and create a new connection */
+	/* Third loop, is something offline that we can connect? */
+	for (i = 0; i < NUM_HTTP_CONNECTIONS; ++i) {
+		if (conn->connections[i] &&
+				conn->connections[i]->state == HTTP_CONN_OFFLINE) {
+			purple_debug_info("jabber", "bosh: Reconnecting httpconn "
+			                            "(%i, %p)\n", i, conn->connections[i]);
+			http_connection_connect(conn->connections[i]);
+			return NULL;
+		}
+	}
+
+	/* Fourth loop, look for one that's NULL and create a new connection */
 	for (i = 0; i < NUM_HTTP_CONNECTIONS; ++i) {
 		if (!conn->connections[i]) {
-			purple_debug_info("jabber", "bosh: Creating and connecting new httpconn\n");
 			conn->connections[i] = jabber_bosh_http_connection_init(conn);
+			purple_debug_info("jabber", "bosh: Creating and connecting new httpconn "
+			                            "(%i, %p)\n", i, conn->connections[i]);
 
 			http_connection_connect(conn->connections[i]);
 			return NULL;
@@ -344,6 +365,8 @@
 	chosen = find_available_http_connection(conn);
 
 	if (!chosen) {
+		if (type == PACKET_FLUSH)
+			return;
 		/*
 		 * For non-ordinary traffic, we can't 'buffer' it, so use the
 		 * first connection.
@@ -444,6 +467,27 @@
 	send_timer_cb(bosh);
 }
 
+static void
+jabber_bosh_disable_pipelining(PurpleBOSHConnection *bosh)
+{
+	/* Do nothing if it's already disabled */
+	if (!bosh->pipelining)
+		return;
+
+	purple_debug_info("jabber", "BOSH: Disabling pipelining on conn %p\n",
+	                            bosh);
+	bosh->pipelining = FALSE;
+	if (bosh->connections[1] == NULL) {
+		bosh->connections[1] = jabber_bosh_http_connection_init(bosh);
+		http_connection_connect(bosh->connections[1]);
+	} else {
+		/* Shouldn't happen; this should be the only place pipelining
+		 * is turned off.
+		 */
+		g_warn_if_reached();
+	}
+}
+
 static void jabber_bosh_connection_received(PurpleBOSHConnection *conn, xmlnode *node) {
 	xmlnode *child;
 	JabberStream *js = conn->js;
@@ -611,6 +655,8 @@
 static void
 connection_common_established_cb(PurpleHTTPConnection *conn)
 {
+	purple_debug_misc("jabber", "bosh: httpconn %p re-connected\n", conn);
+
 	/* Indicate we're ready and reset some variables */
 	conn->state = HTTP_CONN_CONNECTED;
 	if (conn->requests != 0)
@@ -622,9 +668,13 @@
 		g_string_free(conn->read_buf, TRUE);
 		conn->read_buf = NULL;
 	}
+	conn->close = FALSE;
 	conn->headers_done = FALSE;
 	conn->handled_len = conn->body_len = 0;
 
+	if (purple_debug_is_verbose())
+		debug_dump_http_connections(conn->bosh);
+
 	if (conn->bosh->js->reinit)
 		jabber_bosh_connection_send(conn->bosh, PACKET_NORMAL, NULL);
 	else if (conn->bosh->state == BOSH_CONN_ONLINE) {
@@ -639,6 +689,7 @@
 
 static void http_connection_disconnected(PurpleHTTPConnection *conn)
 {
+	gboolean had_requests = FALSE;
 	/*
 	 * Well, then. Fine! I never liked you anyway, server! I was cheating on you
 	 * with AIM!
@@ -662,7 +713,8 @@
 		conn->writeh = 0;
 	}
 
-	if (conn->requests > 0 && conn->read_buf->len == 0) {
+	had_requests = (conn->requests > 0);
+	if (had_requests && conn->read_buf->len == 0) {
 		purple_debug_error("jabber", "bosh: Adjusting BOSHconn requests (%d) to %d\n",
 		                   conn->bosh->requests, conn->bosh->requests - conn->requests);
 		conn->bosh->requests -= conn->requests;
@@ -671,13 +723,15 @@
 
 	if (conn->bosh->pipelining) {
 		/* Hmmmm, fall back to multiple connections */
-		conn->bosh->pipelining = FALSE;
-		if (conn->bosh->connections[1] == NULL) {
-			conn->bosh->connections[1] = jabber_bosh_http_connection_init(conn->bosh);
-			http_connection_connect(conn->bosh->connections[1]);
-		}
+		jabber_bosh_disable_pipelining(conn->bosh);
 	}
 
+	if (!had_requests)
+		/* If the server disconnected us without any requests, let's
+		 * just wait until we have something to send before we reconnect
+		 */
+		return;
+
 	if (++conn->bosh->failed_connections == MAX_FAILED_CONNECTIONS) {
 		purple_connection_error_reason(conn->bosh->js->gc,
 				PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
@@ -704,30 +758,49 @@
 
 	cursor = conn->read_buf->str + conn->handled_len;
 
+	if (purple_debug_is_verbose())
+		purple_debug_misc("jabber", "BOSH server sent: %s\n", cursor);
+
+	/* TODO: Chunked encoding and check response version :/ */
 	if (!conn->headers_done) {
-		const char *content_length = purple_strcasestr(cursor, "\r\nContent-Length");
+		const char *content_length = purple_strcasestr(cursor, "\r\nContent-Length:");
+		const char *connection = purple_strcasestr(cursor, "\r\nConnection:");
 		const char *end_of_headers = strstr(cursor, "\r\n\r\n");
 
 		/* Make sure Content-Length is in headers, not body */
 		if (content_length && (!end_of_headers || content_length < end_of_headers)) {
-			const char *sep;
 			int len;
 
-			if ((sep = strstr(content_length, ": ")) == NULL ||
-					strstr(sep, "\r\n") == NULL)
+			if (strstr(content_length, "\r\n") == NULL)
 				/*
 				 * The packet ends in the middle of the Content-Length line.
 				 * We'll try again later when we have more.
 				 */
 				return;
 
-			len = atoi(sep + 2);
+			len = atoi(content_length + strlen("\r\nContent-Length:"));
 			if (len == 0)
-				purple_debug_warning("jabber", "Found mangled Content-Length header.\n");
+				purple_debug_warning("jabber", "Found mangled Content-Length header, or server returned 0-length response.\n");
 
 			conn->body_len = len;
 		}
 
+		if (connection && (!end_of_headers || content_length < end_of_headers)) {
+			const char *tmp;
+			if (strstr(connection, "\r\n") == NULL)
+				return;
+
+
+			tmp = connection + strlen("\r\nConnection:");
+			while (*tmp && (*tmp == ' ' || *tmp == '\t'))
+				++tmp;
+
+			if (!g_ascii_strncasecmp(tmp, "close", strlen("close"))) {
+				conn->close = TRUE;
+				jabber_bosh_disable_pipelining(conn->bosh);
+			}
+		}
+
 		if (end_of_headers) {
 			conn->headers_done = TRUE;
 			conn->handled_len = end_of_headers - conn->read_buf->str + 4;
@@ -752,6 +825,14 @@
 	http_received_cb(conn->read_buf->str + conn->handled_len, conn->body_len,
 	                 conn->bosh);
 
+	/* Connection: Close? */
+	if (conn->close && conn->state == HTTP_CONN_CONNECTED) {
+		if (purple_debug_is_verbose())
+			purple_debug_misc("jabber", "bosh (%p), server sent Connection: "
+			                            "close\n", conn);
+		http_connection_disconnected(conn);
+	}
+
 	if (conn->bosh->state == BOSH_CONN_ONLINE &&
 			(conn->bosh->requests == 0 || conn->bosh->pending->bufused > 0)) {
 		purple_debug_misc("jabber", "BOSH: Sending an empty request\n");
@@ -791,10 +872,11 @@
 
 	if (cnt == 0 || (cnt < 0 && errno != EAGAIN)) {
 		if (cnt < 0)
-			purple_debug_info("jabber", "bosh read=%d, errno=%d, error=%s\n",
-			                  cnt, errno, g_strerror(errno));
+			purple_debug_info("jabber", "BOSH (%p) read=%d, errno=%d, error=%s\n",
+			                  conn, cnt, errno, g_strerror(errno));
 		else
-			purple_debug_info("jabber", "bosh server closed the connection\n");
+			purple_debug_info("jabber", "BOSH server closed the connection (%p)\n",
+			                  conn);
 
 		/*
 		 * If the socket is closed, the processing really needs to know about
@@ -911,6 +993,9 @@
 	else
 		ret = write(conn->fd, data, len);
 
+	if (purple_debug_is_verbose())
+		purple_debug_misc("jabber", "BOSH (%p): wrote %d bytes\n", conn, ret);
+
 	return ret;
 }
 
@@ -975,7 +1060,10 @@
 
 	if (purple_debug_is_unsafe() && purple_debug_is_verbose())
 		/* Will contain passwords for SASL PLAIN and is verbose */
-		purple_debug_misc("jabber", "BOSH: Sending %s\n", data);
+		purple_debug_misc("jabber", "BOSH (%p): Sending %s\n", conn, data);
+	else if (purple_debug_is_verbose())
+		purple_debug_misc("jabber", "BOSH (%p): Sending request of "
+		                            "%" G_GSIZE_FORMAT " bytes.\n", conn, len);
 
 	if (conn->writeh == 0)
 		ret = http_connection_do_send(conn, data, len);
--- a/libpurple/protocols/msn/error.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/error.c	Sat Feb 12 23:54:14 2011 +0000
@@ -31,7 +31,7 @@
 
 typedef struct
 {
-	PurpleConnection *gc;
+	MsnSession *session;
 	char *who;
 	char *group;
 	gboolean add;
@@ -293,9 +293,9 @@
 		group = purple_find_group(data->group);
 
 	if (group != NULL)
-		buddy = purple_find_buddy_in_group(purple_connection_get_account(data->gc), data->who, group);
+		buddy = purple_find_buddy_in_group(data->session->account, data->who, group);
 	else
-		buddy = purple_find_buddy(purple_connection_get_account(data->gc), data->who);
+		buddy = purple_find_buddy(data->session->account, data->who);
 
 	if (buddy != NULL)
 		purple_blist_remove_buddy(buddy);
@@ -309,14 +309,9 @@
 	/* this *should* be necessary !! */
 	msn_complete_sync_issue(data);
 #endif
+	MsnUserList *userlist = data->session->userlist;
 
-	if (g_list_find(purple_connections_get_all(), data->gc) != NULL)
-	{
-		MsnSession *session = data->gc->proto_data;
-		MsnUserList *userlist = session->userlist;
-
-		msn_userlist_add_buddy(userlist, data->who, data->group);
-	}
+	msn_userlist_add_buddy(userlist, data->who, data->group);
 
 	g_free(data->group);
 	g_free(data->who);
@@ -326,18 +321,14 @@
 static void
 msn_rem_cb(MsnAddRemData *data)
 {
+	MsnUserList *userlist = data->session->userlist;
 	msn_complete_sync_issue(data);
 
-	if (g_list_find(purple_connections_get_all(), data->gc) != NULL)
-	{
-		MsnSession *session = data->gc->proto_data;
-		MsnUserList *userlist = session->userlist;
 
-		if (data->group == NULL) {
-			msn_userlist_rem_buddy_from_list(userlist, data->who, MSN_LIST_FL);
-		} else {
-			g_free(data->group);
-		}
+	if (data->group == NULL) {
+		msn_userlist_rem_buddy_from_list(userlist, data->who, MSN_LIST_FL);
+	} else {
+		g_free(data->group);
 	}
 
 	g_free(data->who);
@@ -356,10 +347,10 @@
 	account = session->account;
 	gc = purple_account_get_connection(account);
 
-	data        = g_new0(MsnAddRemData, 1);
-	data->who   = g_strdup(passport);
-	data->group = g_strdup(group_name);
-	data->gc    = gc;
+	data          = g_new0(MsnAddRemData, 1);
+	data->who     = g_strdup(passport);
+	data->group   = g_strdup(group_name);
+	data->session = session;
 
 	msg = g_strdup_printf(_("Buddy list synchronization issue in %s (%s)"),
 						  purple_account_get_username(account),
@@ -382,7 +373,7 @@
 	}
 
 	purple_request_action(gc, NULL, msg, reason, PURPLE_DEFAULT_ACTION_NONE,
-						purple_connection_get_account(gc), data->who, NULL,
+						account, data->who, NULL,
 						data, 2,
 						_("Yes"), G_CALLBACK(msn_add_cb),
 						_("No"), G_CALLBACK(msn_rem_cb));
@@ -390,3 +381,4 @@
 	g_free(reason);
 	g_free(msg);
 }
+
--- a/libpurple/protocols/msn/msg.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/msg.c	Sat Feb 12 23:54:14 2011 +0000
@@ -613,15 +613,7 @@
 
 	if (msg->msnslp_message)
 	{
-		g_string_append_printf(str, "Session ID: %u\r\n", msg->part->header->session_id);
-		g_string_append_printf(str, "ID:         %u\r\n", msg->part->header->id);
-		g_string_append_printf(str, "Offset:     %" G_GUINT64_FORMAT "\r\n", msg->part->header->offset);
-		g_string_append_printf(str, "Total size: %" G_GUINT64_FORMAT "\r\n", msg->part->header->total_size);
-		g_string_append_printf(str, "Length:     %u\r\n", msg->part->header->length);
-		g_string_append_printf(str, "Flags:      0x%x\r\n", msg->part->header->flags);
-		g_string_append_printf(str, "ACK ID:     %u\r\n", msg->part->header->ack_id);
-		g_string_append_printf(str, "SUB ID:     %u\r\n", msg->part->header->ack_sub_id);
-		g_string_append_printf(str, "ACK Size:   %" G_GUINT64_FORMAT "\r\n", msg->part->header->ack_size);
+		msn_slpmsgpart_to_string(msg->part, str);
 
 		if (purple_debug_is_verbose() && body != NULL)
 		{
@@ -638,27 +630,17 @@
 			else
 			{
 				int i;
-				int bin_len;
 
-				if (msg->part->footer->value == P2P_APPID_SESSION)
-					bin_len = P2P_PACKET_HEADER_SIZE;
-				else
-					bin_len = body_len;
-
-				for (i = 0; i < bin_len; i++)
+				for (i = 0; i < body_len; i++)
 				{
 					g_string_append_printf(str, "%.2hhX ", body[i]);
 					if ((i % 16) == 15)
 						g_string_append(str, "\r\n");
 				}
 
-				if (bin_len == P2P_PACKET_HEADER_SIZE)
-					g_string_append_printf(str, "%s ", body + P2P_PACKET_HEADER_SIZE);
 				g_string_append(str, "\r\n");
 			}
 		}
-
-		g_string_append_printf(str, "Footer:     0x%08X\r\n", msg->part->footer->value);
 	}
 	else
 	{
--- a/libpurple/protocols/msn/msg.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/msg.h	Sat Feb 12 23:54:14 2011 +0000
@@ -79,7 +79,6 @@
 	MsnMsgType type;
 
 	gboolean msnslp_message;
-	MsnSlpMessage *slpmsg;
 	MsnSlpMessagePart *part;
 
 	char *remote_user;
@@ -99,7 +98,6 @@
 								  been ref'ed for using it in a callback. */
 
 	MsnCommand *cmd;
-	MsnTransaction *trans;
 
 	MsnMsgCb ack_cb; /**< The callback to call when we receive an ACK of this
 					   message. */
@@ -107,8 +105,6 @@
 					   message. */
 	void *ack_data; /**< The data used by callbacks. */
 
-	MsnMsgErrorType error; /**< The error of the message. */
-
 	guint32 retries;
 };
 
--- a/libpurple/protocols/msn/p2p.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/p2p.c	Sat Feb 12 23:54:14 2011 +0000
@@ -27,12 +27,32 @@
 #include "p2p.h"
 #include "msnutils.h"
 
-MsnP2PHeader *
-msn_p2p_header_from_wire(const char *wire)
+MsnP2PInfo *
+msn_p2p_info_new(void)
+{
+	return g_new0(MsnP2PInfo, 1);
+}
+
+MsnP2PInfo *
+msn_p2p_info_dup(MsnP2PInfo *info)
+{
+	MsnP2PInfo *new_info = g_new0(MsnP2PInfo, 1);
+	*new_info = *info;
+	return new_info;
+}
+
+void
+msn_p2p_info_free(MsnP2PInfo *info)
+{
+	g_free(info);
+}
+
+size_t
+msn_p2p_header_from_wire(MsnP2PInfo *info, const char *wire)
 {
 	MsnP2PHeader *header;
 
-	header = g_new(MsnP2PHeader, 1);
+	header = &info->header;
 
 	header->session_id = msn_pop32le(wire);
 	header->id         = msn_pop32le(wire);
@@ -44,15 +64,17 @@
 	header->ack_sub_id = msn_pop32le(wire);
 	header->ack_size   = msn_pop64le(wire);
 
-	return header;
+	return P2P_PACKET_HEADER_SIZE;
 }
 
 char *
-msn_p2p_header_to_wire(MsnP2PHeader *header)
+msn_p2p_header_to_wire(MsnP2PInfo *info, size_t *len)
 {
+	MsnP2PHeader *header;
 	char *wire;
 	char *tmp;
 
+	header = &info->header;
 	tmp = wire = g_new(char, P2P_PACKET_HEADER_SIZE);
 
 	msn_push32le(tmp, header->session_id);
@@ -65,35 +87,58 @@
 	msn_push32le(tmp, header->ack_sub_id);
 	msn_push64le(tmp, header->ack_size);
 
+	if (len)
+		*len = P2P_PACKET_HEADER_SIZE;
+
 	return wire;
 
 }
 
-MsnP2PFooter *
-msn_p2p_footer_from_wire(const char *wire)
+size_t
+msn_p2p_footer_from_wire(MsnP2PInfo *info, const char *wire)
 {
 	MsnP2PFooter *footer;
 
-	footer = g_new(MsnP2PFooter, 1);
+	footer = &info->footer;
 
 	footer->value = msn_pop32be(wire);
 
-	return footer;
+	return P2P_PACKET_FOOTER_SIZE;
 }
 
 char *
-msn_p2p_footer_to_wire(MsnP2PFooter *footer)
+msn_p2p_footer_to_wire(MsnP2PInfo *info, size_t *len)
 {
+	MsnP2PFooter *footer;
 	char *wire;
 	char *tmp;
 
+	footer = &info->footer;
 	tmp = wire = g_new(char, P2P_PACKET_FOOTER_SIZE);
 
 	msn_push32be(tmp, footer->value);
 
+	if (len)
+		*len = P2P_PACKET_FOOTER_SIZE;
+
 	return wire;
 }
 
+void
+msn_p2p_info_to_string(MsnP2PInfo *info, GString *str)
+{
+	g_string_append_printf(str, "Session ID: %u\r\n", info->header.session_id);
+	g_string_append_printf(str, "ID:         %u\r\n", info->header.id);
+	g_string_append_printf(str, "Offset:     %" G_GUINT64_FORMAT "\r\n", info->header.offset);
+	g_string_append_printf(str, "Total size: %" G_GUINT64_FORMAT "\r\n", info->header.total_size);
+	g_string_append_printf(str, "Length:     %u\r\n", info->header.length);
+	g_string_append_printf(str, "Flags:      0x%x\r\n", info->header.flags);
+	g_string_append_printf(str, "ACK ID:     %u\r\n", info->header.ack_id);
+	g_string_append_printf(str, "SUB ID:     %u\r\n", info->header.ack_sub_id);
+	g_string_append_printf(str, "ACK Size:   %" G_GUINT64_FORMAT "\r\n", info->header.ack_size);
+	g_string_append_printf(str, "Footer:     0x%08X\r\n", info->footer.value);
+}
+
 gboolean
 msn_p2p_msg_is_data(const MsnP2PHeaderFlag flags)
 {
@@ -102,3 +147,135 @@
 	        flags == P2P_FILE_DATA);
 }
 
+gboolean
+msn_p2p_info_is_valid(MsnP2PInfo *info)
+{
+	return info->header.total_size >= info->header.length;
+}
+
+gboolean
+msn_p2p_info_is_final(MsnP2PInfo *info)
+{
+	return info->header.offset + info->header.length >= info->header.total_size;
+}
+
+guint32
+msn_p2p_info_get_session_id(MsnP2PInfo *info)
+{
+	return info->header.session_id;
+}
+
+guint32
+msn_p2p_info_get_id(MsnP2PInfo *info)
+{
+	return info->header.id;
+}
+
+guint64
+msn_p2p_info_get_offset(MsnP2PInfo *info)
+{
+	return info->header.offset;
+}
+
+guint64
+msn_p2p_info_get_total_size(MsnP2PInfo *info)
+{
+	return info->header.total_size;
+}
+
+guint32
+msn_p2p_info_get_length(MsnP2PInfo *info)
+{
+	return info->header.length;
+}
+
+guint32
+msn_p2p_info_get_flags(MsnP2PInfo *info)
+{
+	return info->header.flags;
+}
+
+guint32
+msn_p2p_info_get_ack_id(MsnP2PInfo *info)
+{
+	return info->header.ack_id;
+}
+
+guint32
+msn_p2p_info_get_ack_sub_id(MsnP2PInfo *info)
+{
+	return info->header.ack_sub_id;
+}
+
+guint64
+msn_p2p_info_get_ack_size(MsnP2PInfo *info)
+{
+	return info->header.ack_size;
+}
+
+guint32
+msn_p2p_info_get_app_id(MsnP2PInfo *info)
+{
+	return info->footer.value;
+}
+
+void
+msn_p2p_info_set_session_id(MsnP2PInfo *info, guint32 session_id)
+{
+	info->header.session_id = session_id;
+}
+
+void
+msn_p2p_info_set_id(MsnP2PInfo *info, guint32 id)
+{
+	info->header.id = id;
+}
+
+void
+msn_p2p_info_set_offset(MsnP2PInfo *info, guint64 offset)
+{
+	info->header.offset = offset;
+}
+
+void
+msn_p2p_info_set_total_size(MsnP2PInfo *info, guint64 total_size)
+{
+	info->header.total_size = total_size;
+}
+
+void
+msn_p2p_info_set_length(MsnP2PInfo *info, guint32 length)
+{
+	info->header.length = length;
+}
+
+void
+msn_p2p_info_set_flags(MsnP2PInfo *info, guint32 flags)
+{
+	info->header.flags = flags;
+}
+
+void
+msn_p2p_info_set_ack_id(MsnP2PInfo *info, guint32 ack_id)
+{
+	info->header.ack_id = ack_id;
+}
+
+void
+msn_p2p_info_set_ack_sub_id(MsnP2PInfo *info, guint32 ack_sub_id)
+{
+	info->header.ack_sub_id = ack_sub_id;
+}
+
+void
+msn_p2p_info_set_ack_size(MsnP2PInfo *info, guint64 ack_size)
+{
+	info->header.ack_size = ack_size;
+}
+
+void
+msn_p2p_info_set_app_id(MsnP2PInfo *info, guint32 app_id)
+{
+	info->footer.value = app_id;
+}
+
--- a/libpurple/protocols/msn/p2p.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/p2p.h	Sat Feb 12 23:54:14 2011 +0000
@@ -58,6 +58,11 @@
 } MsnP2PFooter;
 #define P2P_PACKET_FOOTER_SIZE (1 * 4)
 
+typedef struct {
+	MsnP2PHeader header;
+	MsnP2PFooter footer;
+} MsnP2PInfo;
+
 typedef enum
 {
 	P2P_NO_FLAG         = 0x0,        /**< No flags specified */
@@ -88,19 +93,98 @@
 	P2P_APPID_DISPLAY   = 0xC         /**< Display Image */
 } MsnP2PAppId;
 
-MsnP2PHeader *
-msn_p2p_header_from_wire(const char *wire);
+MsnP2PInfo *
+msn_p2p_info_new(void);
+
+MsnP2PInfo *
+msn_p2p_info_dup(MsnP2PInfo *info);
+
+void
+msn_p2p_info_free(MsnP2PInfo *info);
+
+size_t
+msn_p2p_header_from_wire(MsnP2PInfo *info, const char *wire);
 
 char *
-msn_p2p_header_to_wire(MsnP2PHeader *header);
+msn_p2p_header_to_wire(MsnP2PInfo *info, size_t *len);
 
-MsnP2PFooter *
-msn_p2p_footer_from_wire(const char *wire);
+size_t
+msn_p2p_footer_from_wire(MsnP2PInfo *info, const char *wire);
 
 char *
-msn_p2p_footer_to_wire(MsnP2PFooter *footer);
+msn_p2p_footer_to_wire(MsnP2PInfo *info, size_t *len);
+
+void
+msn_p2p_info_to_string(MsnP2PInfo *info, GString *str);
 
 gboolean
 msn_p2p_msg_is_data(const MsnP2PHeaderFlag flags);
 
+gboolean
+msn_p2p_info_is_valid(MsnP2PInfo *info);
+
+gboolean
+msn_p2p_info_is_final(MsnP2PInfo *info);
+
+guint32
+msn_p2p_info_get_session_id(MsnP2PInfo *info);
+
+guint32
+msn_p2p_info_get_id(MsnP2PInfo *info);
+
+guint64
+msn_p2p_info_get_offset(MsnP2PInfo *info);
+
+guint64
+msn_p2p_info_get_total_size(MsnP2PInfo *info);
+
+guint32
+msn_p2p_info_get_length(MsnP2PInfo *info);
+
+guint32
+msn_p2p_info_get_flags(MsnP2PInfo *info);
+
+guint32
+msn_p2p_info_get_ack_id(MsnP2PInfo *info);
+
+guint32
+msn_p2p_info_get_ack_sub_id(MsnP2PInfo *info);
+
+guint64
+msn_p2p_info_get_ack_size(MsnP2PInfo *info);
+
+guint32
+msn_p2p_info_get_app_id(MsnP2PInfo *info);
+
+void
+msn_p2p_info_set_session_id(MsnP2PInfo *info, guint32 session_id);
+
+void
+msn_p2p_info_set_id(MsnP2PInfo *info, guint32 id);
+
+void
+msn_p2p_info_set_offset(MsnP2PInfo *info, guint64 offset);
+
+void
+msn_p2p_info_set_total_size(MsnP2PInfo *info, guint64 total_size);
+
+void
+msn_p2p_info_set_length(MsnP2PInfo *info, guint32 length);
+
+void
+msn_p2p_info_set_flags(MsnP2PInfo *info, guint32 flags);
+
+void
+msn_p2p_info_set_ack_id(MsnP2PInfo *info, guint32 ack_id);
+
+void
+msn_p2p_info_set_ack_sub_id(MsnP2PInfo *info, guint32 ack_sub_id);
+
+void
+msn_p2p_info_set_ack_size(MsnP2PInfo *info, guint64 ack_size);
+
+void
+msn_p2p_info_set_app_id(MsnP2PInfo *info, guint32 app_id);
+
 #endif /* MSN_P2P_H */
+
--- a/libpurple/protocols/msn/sbconn.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/sbconn.c	Sat Feb 12 23:54:14 2011 +0000
@@ -126,8 +126,6 @@
 	trans->payload = payload;
 	trans->payload_len = payload_len;
 
-	msg->trans = trans;
-
 	msn_cmdproc_send_trans(cmdproc, trans);
 }
 
--- a/libpurple/protocols/msn/slpcall.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/slpcall.c	Sat Feb 12 23:54:14 2011 +0000
@@ -1059,16 +1059,21 @@
 	MsnSlpCall *slpcall;
 	const guchar *body;
 	gsize body_len;
+	guint32 session_id;
+	guint32 flags;
 
 	slpcall = NULL;
 	body = slpmsg->buffer;
-	body_len = slpmsg->header->offset;
+	body_len = msn_p2p_info_get_offset(slpmsg->p2p_info);
 
-	if (slpmsg->header->flags == P2P_NO_FLAG || slpmsg->header->flags == P2P_WLM2009_COMP)
+	session_id = msn_p2p_info_get_session_id(slpmsg->p2p_info);
+	flags = msn_p2p_info_get_flags(slpmsg->p2p_info);
+
+	if (flags == P2P_NO_FLAG || flags == P2P_WLM2009_COMP)
 	{
 		char *body_str;
 
-		if (slpmsg->header->session_id == 64)
+		if (session_id == 64)
 		{
 			/* This is for handwritten messages (Ink) */
 			GError *error = NULL;
@@ -1125,9 +1130,9 @@
 		}
 		g_free(body_str);
 	}
-	 else if (msn_p2p_msg_is_data(slpmsg->header->flags))
+	 else if (msn_p2p_msg_is_data(flags))
 	{
-		slpcall = msn_slplink_find_slp_call_with_session_id(slplink, slpmsg->header->session_id);
+		slpcall = msn_slplink_find_slp_call_with_session_id(slplink, session_id);
 
 		if (slpcall != NULL)
 		{
@@ -1142,13 +1147,13 @@
 			slpcall->wasted = TRUE;
 		}
 	}
-	else if (slpmsg->header->flags == P2P_ACK)
+	else if (flags == P2P_ACK)
 	{
 		/* Acknowledgement of previous message. Don't do anything currently. */
 	}
 	else
 		purple_debug_warning("msn", "Unprocessed SLP message with flags 0x%04x\n",
-		                     slpmsg->header->flags);
+		                     flags);
 
 	return slpcall;
 }
--- a/libpurple/protocols/msn/slplink.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/slplink.c	Sat Feb 12 23:54:14 2011 +0000
@@ -281,17 +281,21 @@
 msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
 {
 	MsnSlpMessagePart *part;
+	MsnP2PInfo *info;
 	long long real_size;
 	size_t len = 0;
+	guint64 offset;
 
 	/* Maybe we will want to create a new msg for this slpmsg instead of
 	 * reusing the same one all the time. */
-	part = msn_slpmsgpart_new(slpmsg->header, slpmsg->footer);
+	info = slpmsg->p2p_info;
+	part = msn_slpmsgpart_new(info);
 	part->ack_data = slpmsg;
 
-	real_size = (slpmsg->header->flags == P2P_ACK) ? 0 : slpmsg->size;
+	real_size = (msn_p2p_info_get_flags(info) == P2P_ACK) ? 0 : slpmsg->size;
 
-	if (slpmsg->header->offset < real_size)
+	offset = msn_p2p_info_get_offset(info);
+	if (offset < real_size)
 	{
 		if (slpmsg->slpcall && slpmsg->slpcall->xfer && purple_xfer_get_type(slpmsg->slpcall->xfer) == PURPLE_XFER_SEND &&
 				purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED)
@@ -301,15 +305,15 @@
 		}
 		else
 		{
-			len = slpmsg->size - slpmsg->header->offset;
+			len = slpmsg->size - offset;
 
 			if (len > MSN_SBCONN_MAX_SIZE)
 				len = MSN_SBCONN_MAX_SIZE;
 
-			msn_slpmsgpart_set_bin_data(part, slpmsg->buffer + slpmsg->header->offset, len);
+			msn_slpmsgpart_set_bin_data(part, slpmsg->buffer + offset, len);
 		}
 
-		slpmsg->header->length = len;
+		msn_p2p_info_set_length(slpmsg->p2p_info, len);
 	}
 
 #if 0
@@ -326,7 +330,7 @@
 	msn_slplink_send_part(slplink, part);
 
 
-	if (msn_p2p_msg_is_data(slpmsg->header->flags) &&
+	if (msn_p2p_msg_is_data(msn_p2p_info_get_flags(info)) &&
 		(slpmsg->slpcall != NULL))
 	{
 		slpmsg->slpcall->progress = TRUE;
@@ -334,7 +338,7 @@
 		if (slpmsg->slpcall->progress_cb != NULL)
 		{
 			slpmsg->slpcall->progress_cb(slpmsg->slpcall, slpmsg->size,
-										 len, slpmsg->header->offset);
+										 len, offset);
 		}
 	}
 
@@ -344,27 +348,30 @@
 static void
 msn_slplink_release_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
 {
-	slpmsg = slpmsg;
-	slpmsg->footer = g_new0(MsnP2PFooter, 1);
+	MsnP2PInfo *info;
+	guint32 flags;
+
+	info = slpmsg->p2p_info;
 
-	if (slpmsg->header->flags == P2P_NO_FLAG)
+	flags = msn_p2p_info_get_flags(info);
+	if (flags == P2P_NO_FLAG)
 	{
-		slpmsg->header->ack_id = rand() % 0xFFFFFF00;
+		msn_p2p_info_set_ack_id(info, rand() % 0xFFFFFF00);
 	}
-	else if (msn_p2p_msg_is_data(slpmsg->header->flags))
+	else if (msn_p2p_msg_is_data(flags))
 	{
 		MsnSlpCall *slpcall;
 		slpcall = slpmsg->slpcall;
 
 		g_return_if_fail(slpcall != NULL);
-		slpmsg->header->session_id = slpcall->session_id;
-		slpmsg->footer->value = slpcall->app_id;
-		slpmsg->header->ack_id = rand() % 0xFFFFFF00;
+		msn_p2p_info_set_session_id(info, slpcall->session_id);
+		msn_p2p_info_set_app_id(info, slpcall->app_id);
+		msn_p2p_info_set_ack_id(info, rand() % 0xFFFFFF00);
 	}
 
-	slpmsg->header->id = slpmsg->id;
+	msn_p2p_info_set_id(info, slpmsg->id);
 
-	slpmsg->header->total_size = slpmsg->size;
+	msn_p2p_info_set_total_size(info, slpmsg->size);
 
 	msn_slplink_send_msgpart(slplink, slpmsg);
 }
@@ -400,20 +407,20 @@
 }
 
 static MsnSlpMessage *
-msn_slplink_create_ack(MsnSlpLink *slplink, MsnP2PHeader *header)
+msn_slplink_create_ack(MsnSlpLink *slplink, MsnP2PInfo *info)
 {
 	MsnSlpMessage *slpmsg;
 
-	slpmsg = msn_slpmsg_ack_new(header);
+	slpmsg = msn_slpmsg_ack_new(info);
 	msn_slpmsg_set_slplink(slpmsg, slplink);
 
 	return slpmsg;
 }
 
 static void
-msn_slplink_send_ack(MsnSlpLink *slplink, MsnP2PHeader *header)
+msn_slplink_send_ack(MsnSlpLink *slplink, MsnP2PInfo *info)
 {
-	MsnSlpMessage *slpmsg = msn_slplink_create_ack(slplink, header);
+	MsnSlpMessage *slpmsg = msn_slplink_create_ack(slplink, info);
 
 	msn_slplink_send_slpmsg(slplink, slpmsg);
 	msn_slpmsg_destroy(slpmsg);
@@ -428,7 +435,7 @@
 	{
 		MsnSlpMessage *slpmsg = e->data;
 
-		if ((slpmsg->header->session_id == session_id) && (slpmsg->id == id))
+		if ((msn_p2p_info_get_session_id(slpmsg->p2p_info) == session_id) && (slpmsg->id == id))
 			return slpmsg;
 	}
 
@@ -436,22 +443,26 @@
 }
 
 static MsnSlpMessage *
-init_first_msg(MsnSlpLink *slplink, MsnP2PHeader *header)
+init_first_msg(MsnSlpLink *slplink, MsnP2PInfo *info)
 {
 	MsnSlpMessage *slpmsg;
+	guint32 session_id;
+	guint32 flags;
 
 	slpmsg = msn_slpmsg_new(slplink);
-	slpmsg->id = header->id;
-	slpmsg->header->session_id = header->session_id;
-	slpmsg->size = header->total_size;
-	slpmsg->header->flags = header->flags;
+	slpmsg->id = msn_p2p_info_get_id(info);
+	session_id = msn_p2p_info_get_session_id(info);
+	msn_p2p_info_set_session_id(slpmsg->p2p_info, session_id);
+	slpmsg->size = msn_p2p_info_get_total_size(info);
+	flags = msn_p2p_info_get_flags(info);
+	msn_p2p_info_set_flags(slpmsg->p2p_info, flags);
 
-	if (slpmsg->header->session_id)
+	if (session_id)
 	{
-		slpmsg->slpcall = msn_slplink_find_slp_call_with_session_id(slplink, slpmsg->header->session_id);
+		slpmsg->slpcall = msn_slplink_find_slp_call_with_session_id(slplink, session_id);
 		if (slpmsg->slpcall != NULL)
 		{
-			if (msn_p2p_msg_is_data(header->flags))
+			if (msn_p2p_msg_is_data(flags))
 			{
 				PurpleXfer *xfer = slpmsg->slpcall->xfer;
 				if (xfer != NULL)
@@ -488,9 +499,10 @@
 }
 
 static void
-process_complete_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg, MsnP2PHeader *header)
+process_complete_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg, MsnP2PInfo *info)
 {
 	MsnSlpCall *slpcall;
+	guint32 flags;
 
 	slpcall = msn_slp_process_msg(slplink, slpmsg);
 
@@ -501,8 +513,10 @@
 
 	purple_debug_info("msn", "msn_slplink_process_msg: slpmsg complete\n");
 
-	if (slpmsg->header->flags == P2P_NO_FLAG || slpmsg->header->flags == P2P_WLM2009_COMP ||
-			msn_p2p_msg_is_data(slpmsg->header->flags))
+	flags = msn_p2p_info_get_flags(slpmsg->p2p_info);
+
+	if (flags == P2P_NO_FLAG || flags == P2P_WLM2009_COMP ||
+	    msn_p2p_msg_is_data(flags))
 	{
 		/* Release all the messages and send the ACK */
 
@@ -515,11 +529,11 @@
 			 */
 			purple_debug_info("msn", "msn_slplink_process_msg: save ACK\n");
 
-			slpcall->slplink->dc->prev_ack = msn_slplink_create_ack(slplink, header);
+			slpcall->slplink->dc->prev_ack = msn_slplink_create_ack(slplink, info);
 		} else if (!slpcall->wasted) {
 			purple_debug_info("msn", "msn_slplink_process_msg: send ACK\n");
 
-			msn_slplink_send_ack(slplink, header);
+			msn_slplink_send_ack(slplink, info);
 			msn_slplink_send_queued_slpmsgs(slplink);
 		}
 	}
@@ -539,16 +553,17 @@
 		purple_xfer_prpl_ready(slpmsg->slpcall->xfer);
 	}
 	else if (slpmsg->size && slpmsg->buffer) {
-		if (G_MAXSIZE - part->size < part->header->offset
-				|| (part->header->offset + part->size) > slpmsg->size
-				|| slpmsg->header->offset != part->header->offset) {
+		guint64 offset = msn_p2p_info_get_offset(part->info);
+		if (G_MAXSIZE - part->size < offset
+				|| (offset + part->size) > slpmsg->size
+				|| msn_p2p_info_get_offset(slpmsg->p2p_info) != offset) {
 			purple_debug_error("msn",
 				"Oversized slpmsg - msgsize=%lld offset=%" G_GUINT64_FORMAT " len=%" G_GSIZE_FORMAT "\n",
-				slpmsg->size, part->header->offset, part->size);
+				slpmsg->size, offset, part->size);
 			g_return_if_reached();
 		} else {
-			memcpy(slpmsg->buffer + part->header->offset, part->buffer, part->size);
-			slpmsg->header->offset += part->size;
+			memcpy(slpmsg->buffer + offset, part->buffer, part->size);
+			msn_p2p_info_set_offset(slpmsg->p2p_info, offset + part->size);
 		}
 	}
 }
@@ -557,12 +572,12 @@
 msn_slplink_process_msg(MsnSlpLink *slplink, MsnSlpMessagePart *part)
 {
 	MsnSlpMessage *slpmsg;
-	MsnP2PHeader *header;
+	MsnP2PInfo *info;
 	guint64 offset;
 
-	header = part->header;
+	info = part->info;
 
-	if (header->total_size < header->length)
+	if (!msn_p2p_info_is_valid(info))
 	{
 		/* We seem to have received a bad header */
 		purple_debug_warning("msn", "Total size listed in SLP binary header "
@@ -571,12 +586,15 @@
 		return;
 	}
 
-	offset = header->offset;
+	offset = msn_p2p_info_get_offset(info);
 
 	if (offset == 0)
-		slpmsg = init_first_msg(slplink, header);
+		slpmsg = init_first_msg(slplink, info);
 	else {
-		slpmsg = msn_slplink_message_find(slplink, header->session_id, header->id);
+		guint32 session_id, id;
+		session_id = msn_p2p_info_get_session_id(info);
+		id = msn_p2p_info_get_id(info);
+		slpmsg = msn_slplink_message_find(slplink, session_id, id);
 		if (slpmsg == NULL)
 		{
 			/* Probably the transfer was cancelled */
@@ -587,8 +605,7 @@
 
 	slpmsg_add_part(slpmsg, part);
 
-
-	if (msn_p2p_msg_is_data(slpmsg->header->flags) &&
+	if (msn_p2p_msg_is_data(msn_p2p_info_get_flags(slpmsg->p2p_info)) &&
 		(slpmsg->slpcall != NULL))
 	{
 		slpmsg->slpcall->progress = TRUE;
@@ -606,8 +623,8 @@
 #endif
 
 	/* All the pieces of the slpmsg have been received */
-	if (header->offset + header->length >= header->total_size)
-		process_complete_msg(slplink, slpmsg, header);
+	if (msn_p2p_info_is_final(info))
+		process_complete_msg(slplink, slpmsg, info);
 
 	/* NOTE: The slpmsg will be destroyed in process_complete_msg or left in
 	   the slplink until fully received. Don't free it here!
--- a/libpurple/protocols/msn/slpmsg.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/slpmsg.c	Sat Feb 12 23:54:14 2011 +0000
@@ -48,8 +48,7 @@
 	else
 		slpmsg->slplink = NULL;
 
-	slpmsg->header = g_new0(MsnP2PHeader, 1);
-	slpmsg->footer = NULL;
+	slpmsg->p2p_info = msn_p2p_info_new();
 
 	return slpmsg;
 }
@@ -90,8 +89,7 @@
 
 	slplink->slp_msgs = g_list_remove(slplink->slp_msgs, slpmsg);
 
-	g_free(slpmsg->header);
-	g_free(slpmsg->footer);
+	msn_p2p_info_free(slpmsg->p2p_info);
 
 	g_free(slpmsg);
 }
@@ -193,7 +191,6 @@
 	slpmsg = msn_slpmsg_new(slplink);
 	msn_slpmsg_set_body(slpmsg, body, body_len);
 
-	slpmsg->sip = TRUE;
 	slpmsg->slpcall = slpcall;
 
 	g_free(body);
@@ -201,18 +198,20 @@
 	return slpmsg;
 }
 
-MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PHeader *header)
+MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PInfo *ack_info)
 {
 	MsnSlpMessage *slpmsg;
+	MsnP2PInfo *new_info;
 
 	slpmsg = msn_slpmsg_new(NULL);
 
-	slpmsg->header->session_id = header->session_id;
-	slpmsg->size       = header->total_size;
-	slpmsg->header->flags      = P2P_ACK;
-	slpmsg->header->ack_id     = header->id;
-	slpmsg->header->ack_sub_id = header->ack_id;
-	slpmsg->header->ack_size   = header->total_size;
+	new_info = slpmsg->p2p_info;
+	msn_p2p_info_set_session_id(new_info, msn_p2p_info_get_session_id(ack_info));
+	slpmsg->size = msn_p2p_info_get_total_size(ack_info);
+	msn_p2p_info_set_flags(new_info, P2P_ACK);
+	msn_p2p_info_set_ack_id(new_info, msn_p2p_info_get_id(ack_info));
+	msn_p2p_info_set_ack_sub_id(new_info, msn_p2p_info_get_ack_id(ack_info));
+	msn_p2p_info_set_ack_size(new_info, msn_p2p_info_get_total_size(ack_info));
 	slpmsg->info = "SLP ACK";
 
 	return slpmsg;
@@ -224,7 +223,7 @@
 
 	slpmsg = msn_slpmsg_new(NULL);
 	slpmsg->slpcall = slpcall;
-	slpmsg->header->flags = P2P_MSN_OBJ_DATA;
+	msn_p2p_info_set_flags(slpmsg->p2p_info, P2P_MSN_OBJ_DATA);
 	slpmsg->info = "SLP DATA";
 
 	msn_slpmsg_set_image(slpmsg, img);
@@ -239,7 +238,7 @@
 	slpmsg = msn_slpmsg_new(NULL);
 
 	slpmsg->slpcall = slpcall;
-	slpmsg->header->session_id = slpcall->session_id;
+	msn_p2p_info_set_session_id(slpmsg->p2p_info, slpcall->session_id);
 	msn_slpmsg_set_body(slpmsg, NULL, 4);
 	slpmsg->info = "SLP DATA PREP";
 
@@ -254,7 +253,7 @@
 	slpmsg = msn_slpmsg_new(NULL);
 
 	slpmsg->slpcall = slpcall;
-	slpmsg->header->flags = P2P_FILE_DATA;
+	msn_p2p_info_set_flags(slpmsg->p2p_info, P2P_FILE_DATA);
 	slpmsg->info = "SLP FILE";
 	slpmsg->size = size;
 
@@ -267,27 +266,25 @@
 	char *footer;
 	char *base;
 	char *tmp;
-	size_t siz;
+	size_t header_size, footer_size;
 
-	base = g_malloc(P2P_PACKET_HEADER_SIZE + slpmsg->size + P2P_PACKET_FOOTER_SIZE);
+	header = msn_p2p_header_to_wire(slpmsg->p2p_info, &header_size);
+	footer = msn_p2p_footer_to_wire(slpmsg->p2p_info, &footer_size);
+
+	base = g_malloc(header_size + slpmsg->size + footer_size);
 	tmp = base;
 
-	header = msn_p2p_header_to_wire(slpmsg->header);
-	footer = msn_p2p_footer_to_wire(slpmsg->footer);
-
-	siz = P2P_PACKET_HEADER_SIZE;
 	/* Copy header */
-	memcpy(tmp, header, siz);
-	tmp += siz;
+	memcpy(tmp, header, header_size);
+	tmp += header_size;
 
 	/* Copy body */
 	memcpy(tmp, slpmsg->buffer, slpmsg->size);
 	tmp += slpmsg->size;
 
 	/* Copy footer */
-	siz = P2P_PACKET_FOOTER_SIZE;
-	memcpy(tmp, footer, siz);
-	tmp += siz;
+	memcpy(tmp, footer, footer_size);
+	tmp += footer_size;
 
 	*ret_size = tmp - base;
 
@@ -303,15 +300,7 @@
 
 	str = g_string_new(NULL);
 
-	g_string_append_printf(str, "Session ID: %u\r\n", slpmsg->header->session_id);
-	g_string_append_printf(str, "ID:         %u\r\n", slpmsg->header->id);
-	g_string_append_printf(str, "Offset:     %" G_GUINT64_FORMAT "\r\n", slpmsg->header->offset);
-	g_string_append_printf(str, "Total size: %" G_GUINT64_FORMAT "\r\n", slpmsg->header->total_size);
-	g_string_append_printf(str, "Length:     %u\r\n", slpmsg->header->length);
-	g_string_append_printf(str, "Flags:      0x%x\r\n", slpmsg->header->flags);
-	g_string_append_printf(str, "ACK ID:     %u\r\n", slpmsg->header->ack_id);
-	g_string_append_printf(str, "SUB ID:     %u\r\n", slpmsg->header->ack_sub_id);
-	g_string_append_printf(str, "ACK Size:   %" G_GUINT64_FORMAT "\r\n", slpmsg->header->ack_size);
+	msn_p2p_info_to_string(slpmsg->p2p_info, str);
 
 	if (purple_debug_is_verbose() && slpmsg->buffer != NULL) {
 		g_string_append_len(str, (gchar*)slpmsg->buffer, slpmsg->size);
@@ -324,7 +313,5 @@
 
 	}
 
-	g_string_append_printf(str, "Footer:     %u\r\n", slpmsg->footer->value);
-
 	purple_debug_info("msn", "SlpMessage %s:\n{%s}\n", slpmsg->info, str->str);
 }
--- a/libpurple/protocols/msn/slpmsg.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/slpmsg.h	Sat Feb 12 23:54:14 2011 +0000
@@ -45,13 +45,10 @@
 	MsnSlpLink *slplink; /**< The slplink through which this slp message is being sent. */
 	MsnSession *session;
 
-	MsnP2PHeader *header;
-	MsnP2PFooter *footer;
+	MsnP2PInfo *p2p_info;
 
 	long id;
 
-	gboolean sip; /**< A flag that states if this is a SIP slp message. */
-
 	gboolean ft;
 	PurpleStoredImage *img;
 	guchar *buffer;
@@ -94,8 +91,6 @@
 void msn_slpmsg_set_body(MsnSlpMessage *slpmsg, const char *body,
 						 long long size);
 void msn_slpmsg_set_image(MsnSlpMessage *slpmsg, PurpleStoredImage *img);
-void msn_slpmsg_open_file(MsnSlpMessage *slpmsg,
-						  const char *file_name);
 MsnSlpMessage * msn_slpmsg_sip_new(MsnSlpCall *slpcall, int cseq,
 								   const char *header,
 								   const char *branch,
@@ -109,7 +104,7 @@
  *
  * @return A new SlpMessage with ACK headers
  */
-MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PHeader *header);
+MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PInfo *info);
 
 /**
  * Create a new SLP message for MsnObject data.
--- a/libpurple/protocols/msn/slpmsg_part.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/slpmsg_part.c	Sat Feb 12 23:54:14 2011 +0000
@@ -28,16 +28,14 @@
 #include "slpmsg.h"
 #include "slpmsg_part.h"
 
-MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PHeader *header, MsnP2PFooter *footer)
+MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PInfo *info)
 {
 	MsnSlpMessagePart *part;
 
 	part = g_new0(MsnSlpMessagePart, 1);
 
-	if (header)
-		part->header = g_memdup(header, P2P_PACKET_HEADER_SIZE);
-	if (footer)
-		part->footer = g_memdup(footer, P2P_PACKET_FOOTER_SIZE);
+	if (info)
+		part->info = msn_p2p_info_dup(info);
 
 	part->ack_cb = msn_slpmsgpart_ack;
 	part->nak_cb = msn_slpmsgpart_nak;
@@ -48,20 +46,22 @@
 MsnSlpMessagePart *msn_slpmsgpart_new_from_data(const char *data, size_t data_len)
 {
 	MsnSlpMessagePart *part;
+	size_t len;
 	int body_len;
 
 	if (data_len < P2P_PACKET_HEADER_SIZE) {
 		return NULL;
 	}
 
-	part = msn_slpmsgpart_new(NULL, NULL);
+	part = msn_slpmsgpart_new(NULL);
+	part->info = msn_p2p_info_new();
 
 	/* Extract the binary SLP header */
-	part->header = msn_p2p_header_from_wire(data);
-	data += P2P_PACKET_HEADER_SIZE;
+	len = msn_p2p_header_from_wire(part->info, data);
+	data += len;
 
 	/* Extract the body */
-	body_len = data_len - P2P_PACKET_HEADER_SIZE - P2P_PACKET_FOOTER_SIZE;
+	body_len = data_len - len - P2P_PACKET_FOOTER_SIZE;
 	/* msg->body_len = msg->msnslp_header.length; */
 
 	if (body_len > 0) {
@@ -73,15 +73,14 @@
 
 	/* Extract the footer */
 	if (body_len >= 0)
-		part->footer = msn_p2p_footer_from_wire(data);
+		msn_p2p_footer_from_wire(part->info, data);
 
 	return part;
 }
 
 static void msn_slpmsgpart_destroy(MsnSlpMessagePart *part)
 {
-	g_free(part->header);
-	g_free(part->footer);
+	g_free(part->info);
 	g_free(part->buffer);
 
 	g_free(part);
@@ -138,27 +137,25 @@
 	char *footer;
 	char *base;
 	char *tmp;
-	size_t siz;
+	size_t header_size, footer_size;
 
-	base = g_malloc(P2P_PACKET_HEADER_SIZE + part->size + P2P_PACKET_FOOTER_SIZE);
+	header = msn_p2p_header_to_wire(part->info, &header_size);
+	footer = msn_p2p_footer_to_wire(part->info, &footer_size);
+
+	base = g_malloc(header_size + part->size + footer_size);
 	tmp = base;
 
-	header = msn_p2p_header_to_wire(part->header);
-	footer = msn_p2p_footer_to_wire(part->footer);
-
-	siz = P2P_PACKET_HEADER_SIZE;
 	/* Copy header */
-	memcpy(tmp, header, siz);
-	tmp += siz;
+	memcpy(tmp, header, header_size);
+	tmp += header_size;
 
 	/* Copy body */
 	memcpy(tmp, part->buffer, part->size);
 	tmp += part->size;
 
 	/* Copy footer */
-	siz = P2P_PACKET_FOOTER_SIZE;
-	memcpy(tmp, footer, siz);
-	tmp += siz;
+	memcpy(tmp, footer, footer_size);
+	tmp += footer_size;
 
 	*ret_size = tmp - base;
 
@@ -167,23 +164,27 @@
 
 	return base;
 }
+
 /* We have received the message ack */
 void
 msn_slpmsgpart_ack(MsnSlpMessagePart *part, void *data)
 {
 	MsnSlpMessage *slpmsg;
+	guint64 offset;
 	long long real_size;
 
 	slpmsg = data;
 
-	real_size = (slpmsg->header->flags == P2P_ACK) ? 0 : slpmsg->size;
+	real_size = (msn_p2p_info_get_flags(slpmsg->p2p_info) == P2P_ACK) ? 0 : slpmsg->size;
 
-	slpmsg->header->offset += part->header->length;
+	offset = msn_p2p_info_get_offset(slpmsg->p2p_info);
+	offset += msn_p2p_info_get_length(part->info);
+	msn_p2p_info_set_offset(slpmsg->p2p_info, offset);
 
 	slpmsg->parts = g_list_remove(slpmsg->parts, part);
 	msn_slpmsgpart_unref(part);
 
-	if (slpmsg->header->offset < real_size)
+	if (offset < real_size)
 	{
 		if (slpmsg->slpcall->xfer && purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED)
 		{
@@ -196,7 +197,7 @@
 	else
 	{
 		/* The whole message has been sent */
-		if (msn_p2p_msg_is_data(slpmsg->header->flags))
+		if (msn_p2p_msg_is_data(msn_p2p_info_get_flags(slpmsg->p2p_info)))
 		{
 			if (slpmsg->slpcall != NULL)
 			{
@@ -222,3 +223,9 @@
 	msn_slpmsgpart_unref(part);
 }
 
+void
+msn_slpmsgpart_to_string(MsnSlpMessagePart *part, GString *str)
+{
+	msn_p2p_info_to_string(part->info, str);
+}
+
--- a/libpurple/protocols/msn/slpmsg_part.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/msn/slpmsg_part.h	Sat Feb 12 23:54:14 2011 +0000
@@ -34,8 +34,7 @@
 {
 	guint ref_count;
 
-	MsnP2PHeader *header;
-	MsnP2PFooter *footer;
+	MsnP2PInfo *info;
 
 	MsnSlpPartCb ack_cb;
 	MsnSlpPartCb nak_cb;
@@ -45,7 +44,7 @@
 	size_t size;
 };
 
-MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PHeader *header, MsnP2PFooter *footer);
+MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PInfo *info);
 
 MsnSlpMessagePart *msn_slpmsgpart_new_from_data(const char *data, size_t data_len);
 
@@ -60,4 +59,8 @@
 void msn_slpmsgpart_ack(MsnSlpMessagePart *part, void *data);
 
 void msn_slpmsgpart_nak(MsnSlpMessagePart *part, void *data);
+
+void msn_slpmsgpart_to_string(MsnSlpMessagePart *part, GString *str);
+
 #endif /* MSN_SLPMSG_PART_H */
+
--- a/libpurple/protocols/novell/novell.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/novell/novell.c	Sat Feb 12 23:54:14 2011 +0000
@@ -74,7 +74,7 @@
 _sync_privacy_lists(NMUser *user);
 
 static void
-_show_info(PurpleConnection * gc, NMUserRecord * user_record);
+_show_info(PurpleConnection * gc, NMUserRecord * user_record, char * name);
 
 const char *
 _get_conference_name(int id);
@@ -705,7 +705,7 @@
 		user_record = (NMUserRecord *) resp_data;
 		if (user_record) {
 			_show_info(purple_account_get_connection(user->client_data),
-					   user_record);
+					   user_record, g_strdup(name));
 		}
 	} else {
 		gc = purple_account_get_connection(user->client_data);
@@ -1505,7 +1505,7 @@
 
 /* Display a dialog box showing the properties for the given user record */
 static void
-_show_info(PurpleConnection * gc, NMUserRecord * user_record)
+_show_info(PurpleConnection * gc, NMUserRecord * user_record, char * name)
 {
 	PurpleNotifyUserInfo *user_info =	purple_notify_user_info_new();
 	int count, i;
@@ -1544,9 +1544,10 @@
 		}
 	}
 
-	purple_notify_userinfo(gc, nm_user_record_get_userid(user_record),
-						 user_info, NULL, NULL);
+	purple_notify_userinfo(gc, name, user_info, NULL, NULL);
 	purple_notify_user_info_destroy(user_info);
+
+	g_free(name);
 }
 
 /* Send a join conference, the first item in the parms list is the
@@ -2912,11 +2913,9 @@
 
 		user_record = nm_find_user_record(user, name);
 		if (user_record) {
-
-			_show_info(gc, user_record);
+			_show_info(gc, user_record, g_strdup(name));
 
 		} else {
-
 			rc = nm_send_get_details(user, name,
 									 _get_details_resp_show_info, g_strdup(name));
 
--- a/libpurple/protocols/oscar/family_feedbag.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/oscar/family_feedbag.c	Sat Feb 12 23:54:14 2011 +0000
@@ -44,10 +44,66 @@
  */
 
 #include "oscar.h"
+#include "debug.h"
 
 static int aim_ssi_addmoddel(OscarData *od);
 
 /**
+ * List types based on http://dev.aol.com/aim/oscar/#FEEDBAG (archive.org)
+ * and http://iserverd.khstu.ru/oscar/ssi_item.html
+ *
+ * @param type The type of a list item as integer number, as provided by an aim_ssi_item struct.
+ * @return Returns the name of the item type as a character string.
+ */
+static const gchar*
+aim_ssi_type_to_string(guint16 type)
+{
+	struct TypeStringPair
+	{
+		guint16 type;
+		const gchar *string;
+	};
+	static const struct TypeStringPair type_strings[] = {
+		{ 0x0000, "Buddy" },
+		{ 0x0001, "Group" },
+		{ 0x0002, "Permit/Visible" },
+		{ 0x0003, "Deny/Invisible" },
+		{ 0x0004, "PDInfo" },
+		{ 0x0005, "PresencePrefs" }, 
+		{ 0x0006, "Non-Buddy Info" },
+		{ 0x0009, "ClientPrefs" },
+		{ 0x000e, "ICQDeny/Ignore" },
+		{ 0x0014, "Buddy Icon" }, 
+		{ 0x0015, "Recent Buddies" },
+		{ 0x0019, "Non-Buddy" },
+		{ 0x001d, "Vanity Info" },
+		{ 0x0020, "ICQ-MDir" },
+		{ 0x0029, "Facebook" },
+	};
+	int i;
+	for (i = 0; i < G_N_ELEMENTS(type_strings); i++) {
+		if (type_strings[i].type == type) {
+			return type_strings[i].string;
+		}
+	}
+	return "unknown";
+}
+
+/** For debug log output: Appends a line containing information about a given list item to a string.
+ *
+ * @param str String to which the line will be appended.
+ * @param prefix A string which will be prepended to the line.
+ * @param item List item from which information is extracted.
+ */
+static void
+aim_ssi_item_debug_append(GString *str, char *prefix, struct aim_ssi_item *item)
+{
+	g_string_append_printf(str, 
+		"%s gid=0x%04hx, bid=0x%04hx, list_type=0x%04hx [%s], name=%s.\n",
+		prefix, item->gid, item->bid, item->type, aim_ssi_type_to_string(item->type), item->name);
+}
+
+/**
  * Locally rebuild the 0x00c8 TLV in the additional data of the given group.
  *
  * @param list A pointer to a pointer to the current list of items.
@@ -478,6 +534,7 @@
 	struct aim_ssi_item *cur1, *cur2;
 	struct aim_ssi_tmp *cur, *new;
 	int n = 0;
+	GString *debugstr = g_string_new("");
 
 	/*
 	 * The variable "n" is used to limit the number of addmoddel's that
@@ -517,6 +574,7 @@
 					cur->next = new;
 				} else
 					od->ssi.pending = new;
+			       	aim_ssi_item_debug_append(debugstr, "Deleting item ", cur1);
 			}
 		}
 	}
@@ -537,6 +595,7 @@
 					cur->next = new;
 				} else
 					od->ssi.pending = new;
+			       	aim_ssi_item_debug_append(debugstr, "Adding item ", cur1);
 			}
 		}
 	}
@@ -558,9 +617,21 @@
 					cur->next = new;
 				} else
 					od->ssi.pending = new;
+			       	aim_ssi_item_debug_append(debugstr, "Modifying item ", cur1);
 			}
 		}
 	}
+	if (debugstr->len > 0) {
+		purple_debug_info("oscar", "%s", debugstr->str);
+		if (purple_debug_is_verbose()) {
+	    		g_string_truncate(debugstr, 0);
+			for (cur1 = od->ssi.local; cur1; cur1 = cur1->next) 
+				aim_ssi_item_debug_append(debugstr, "\t", cur1);
+			purple_debug_misc("oscar", "Dumping item list of account %s:\n%s",
+				purple_connection_get_account(od->gc)->username, debugstr->str);
+		}
+	}
+	g_string_free(debugstr, TRUE);
 
 	/* We're out of stuff to do, so tell the AIM servers we're done and exit */
 	if (!od->ssi.pending) {
@@ -1165,6 +1236,7 @@
 	guint16 namelen, gid, bid, type;
 	char *name;
 	GSList *data;
+	GString *debugstr = g_string_new("");
 
 	fmtver = byte_stream_get8(bs); /* Version of ssi data.  Should be 0x00 */
 	od->ssi.numitems += byte_stream_get16(bs); /* # of items in this SSI SNAC */
@@ -1179,10 +1251,13 @@
 		bid = byte_stream_get16(bs);
 		type = byte_stream_get16(bs);
 		data = aim_tlvlist_readlen(bs, byte_stream_get16(bs));
-		aim_ssi_itemlist_add(&od->ssi.official, name, gid, bid, type, data);
+		aim_ssi_item_debug_append(debugstr, "\t", aim_ssi_itemlist_add(&od->ssi.official, name, gid, bid, type, data));
 		g_free(name);
 		aim_tlvlist_free(data);
 	}
+	purple_debug_misc("oscar", "Reading items from tlvlist for account %s:\n%s",
+		purple_connection_get_account(od->gc)->username, debugstr->str);
+	g_string_free(debugstr, TRUE);
 
 	/* Read in the timestamp */
 	od->ssi.timestamp = byte_stream_get32(bs);
--- a/libpurple/protocols/qq/ChangeLog	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/ChangeLog	Sat Feb 12 23:54:14 2011 +0000
@@ -1,3 +1,12 @@
+2010.01.23 - flos <lonicerae(at)gmail.com>
+	* added an option to force incoming message in chat room to use a default font instead of the font in message itself
+
+2010.01.18 - flos <lonicerae(at)gmail.com>
+	* added type 'UPDCLS' and 'UID' for implementing business logic layer
+
+2010.01.13 - ccpaging <ccpaging(at)gmail.com>
+	* qq2009-1 patch from ccpaging
+
 2009.04.23 - flos <lonicerae(at)gmail.com>
 	* Fixed a bug of updating buddy who is not in user's buddy list
 
--- a/libpurple/protocols/qq/buddy_info.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/buddy_info.c	Sat Feb 12 23:54:14 2011 +0000
@@ -26,6 +26,7 @@
 #include "debug.h"
 #include "notify.h"
 #include "request.h"
+#include "connection.h"
 
 #include "utils.h"
 #include "packet_parse.h"
@@ -221,8 +222,8 @@
 	g_strfreev(segments);
 }
 
-void qq_request_buddy_info(PurpleConnection *gc, guint32 uid,
-		guint32 update_class, int action)
+void qq_request_buddy_info(PurpleConnection *gc, UID uid,
+		UPDCLS update_class, int action)
 {
 	gchar raw_data[16] = {0};
 
@@ -620,7 +621,7 @@
 	PurpleBuddy *buddy = NULL;
 	qq_data *qd = NULL;
 	qq_buddy_data *bd = NULL;
-	guint32 uid;
+	UID uid;
 	gchar *who;
 	gchar *alias_utf8;
 
@@ -741,7 +742,7 @@
 	return;
 }
 
-void qq_request_get_level(PurpleConnection *gc, guint32 uid)
+void qq_request_get_level(PurpleConnection *gc, UID uid)
 {
 	qq_data *qd = (qq_data *) gc->proto_data;
 	guint8 buf[16] = {0};
@@ -756,7 +757,7 @@
 	qq_send_cmd(gc, QQ_CMD_GET_LEVEL, buf, bytes);
 }
 
-void qq_request_get_level_2007(PurpleConnection *gc, guint32 uid)
+void qq_request_get_level_2007(PurpleConnection *gc, UID uid)
 {
 	guint8 buf[16] = {0};
 	gint bytes = 0;
@@ -767,7 +768,7 @@
 	qq_send_cmd(gc, QQ_CMD_GET_LEVEL, buf, bytes);
 }
 
-void qq_request_get_buddies_level(PurpleConnection *gc, guint32 update_class)
+void qq_request_get_buddies_level(PurpleConnection *gc, UPDCLS update_class)
 {
 	qq_data *qd = (qq_data *) gc->proto_data;
 	PurpleBuddy *buddy;
@@ -797,7 +798,8 @@
 static void process_level(PurpleConnection *gc, guint8 *data, gint data_len)
 {
 	gint bytes = 0;
-	guint32 uid, onlineTime;
+	UID uid;
+	guint32 onlineTime;
 	guint16 level, timeRemainder;
 	qq_buddy_data *bd;
 
@@ -829,7 +831,8 @@
 static void process_level_2007(PurpleConnection *gc, guint8 *data, gint data_len)
 {
 	gint bytes;
-	guint32 uid, onlineTime;
+	UID uid;
+	guint32 onlineTime;
 	guint16 level, timeRemainder;
 	qq_buddy_data *bd;
 	guint16 str_len;
--- a/libpurple/protocols/qq/buddy_info.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/buddy_info.h	Sat Feb 12 23:54:14 2011 +0000
@@ -78,15 +78,14 @@
 gchar *qq_get_icon_path(gchar *icon_name);
 void qq_change_icon_cb(PurpleConnection *gc, const char *filepath);
 
-void qq_request_buddy_info(PurpleConnection *gc, guint32 uid,
-		guint32 update_class, int action);
+void qq_request_buddy_info(PurpleConnection *gc, UID uid, UPDCLS update_class, int action);
 void qq_set_custom_icon(PurpleConnection *gc, PurpleStoredImage *img);
 void qq_process_change_info(PurpleConnection *gc, guint8 *data, gint data_len);
 void qq_process_get_buddy_info(guint8 *data, gint data_len, guint32 action, PurpleConnection *gc);
 
-void qq_request_get_level(PurpleConnection *gc, guint32 uid);
-void qq_request_get_level_2007(PurpleConnection *gc, guint32 uid);
-void qq_request_get_buddies_level(PurpleConnection *gc, guint32 update_class);
+void qq_request_get_level(PurpleConnection *gc, UID uid);
+void qq_request_get_level_2007(PurpleConnection *gc, UID uid);
+void qq_request_get_buddies_level(PurpleConnection *gc, UPDCLS update_class);
 void qq_process_get_level_reply(guint8 *buf, gint buf_len, PurpleConnection *gc);
 
 void qq_update_buddy_icon(PurpleAccount *account, const gchar *who, gint face);
--- a/libpurple/protocols/qq/buddy_list.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/buddy_list.c	Sat Feb 12 23:54:14 2011 +0000
@@ -53,7 +53,7 @@
 } qq_buddy_online;
 
 /* get a list of online_buddies */
-void qq_request_get_buddies_online(PurpleConnection *gc, guint8 position, guint32 update_class)
+void qq_request_get_buddies_online(PurpleConnection *gc, guint8 position, UPDCLS update_class)
 {
 	guint8 *raw_data;
 	gint bytes = 0;
@@ -77,7 +77,7 @@
 
 /* position starts with 0x0000,
  * server may return a position tag if list is too long for one packet */
-void qq_request_get_buddies(PurpleConnection *gc, guint16 position, guint32 update_class)
+void qq_request_get_buddies(PurpleConnection *gc, guint16 position, UPDCLS update_class)
 {
 	qq_data *qd;
 	guint8 raw_data[16] = {0};
@@ -101,7 +101,7 @@
 }
 
 /* get all list, buddies & Quns with groupsid support */
-void qq_request_get_buddies_and_rooms(PurpleConnection *gc, guint32 position, guint32 update_class)
+void qq_request_get_buddies_and_rooms(PurpleConnection *gc, guint32 position, UPDCLS update_class)
 {
 	guint8 raw_data[16] = {0};
 	gint bytes = 0;
@@ -362,7 +362,7 @@
 	gint bytes;
 	guint8 sub_cmd, reply_code;
 	guint32 unknown, position;
-	guint32 uid;
+	UID uid;
 	guint8 type;
 	qq_room_data *rmd;
 
@@ -455,7 +455,7 @@
 }
 
 /* send a packet to change my online status */
-void qq_request_change_status(PurpleConnection *gc, guint32 update_class)
+void qq_request_change_status(PurpleConnection *gc, UPDCLS update_class)
 {
 	qq_data *qd;
 	guint8 raw_data[16] = {0};
@@ -525,7 +525,7 @@
 {
 	qq_data *qd;
 	gint bytes;
-	guint32 my_uid;
+	UID my_uid;
 	gchar *who;
 	PurpleBuddy *buddy;
 	qq_buddy_data *bd;
@@ -583,7 +583,7 @@
 }
 
 /*TODO: maybe this should be qq_update_buddy_status() ?*/
-void qq_update_buddy_status(PurpleConnection *gc, guint32 uid, guint8 status, guint8 flag)
+void qq_update_buddy_status(PurpleConnection *gc, UID uid, guint8 status, guint8 flag)
 {
 	gchar *who;
 	const gchar *status_id;
--- a/libpurple/protocols/qq/buddy_list.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/buddy_list.h	Sat Feb 12 23:54:14 2011 +0000
@@ -30,7 +30,7 @@
 
 #include "qq.h"
 typedef struct _qq_buddy_status {
-	guint32 uid;
+	UID uid;
 	guint8 unknown1;
 	struct in_addr ip;
 	guint16 port;
@@ -40,20 +40,20 @@
 	guint8 unknown_key[QQ_KEY_LENGTH];
 } qq_buddy_status;
 
-void qq_request_get_buddies_online(PurpleConnection *gc, guint8 position, guint32 update_class);
+void qq_request_get_buddies_online(PurpleConnection *gc, guint8 position, UPDCLS update_class);
 guint8 qq_process_get_buddies_online(guint8 *data, gint data_len, PurpleConnection *gc);
 
-void qq_request_get_buddies(PurpleConnection *gc, guint16 position, guint32 update_class);
+void qq_request_get_buddies(PurpleConnection *gc, guint16 position, UPDCLS update_class);
 guint16 qq_process_get_buddies(guint8 *data, gint data_len, PurpleConnection *gc);
 
-void qq_request_get_buddies_and_rooms(PurpleConnection *gc, guint32 position, guint32 update_class);
+void qq_request_get_buddies_and_rooms(PurpleConnection *gc, guint32 position, UPDCLS update_class);
 guint32 qq_process_get_buddies_and_rooms(guint8 *data, gint data_len, PurpleConnection *gc);
 
-void qq_request_change_status(PurpleConnection *gc, guint32 update_class);
+void qq_request_change_status(PurpleConnection *gc, UPDCLS update_class);
 void qq_process_change_status(guint8 *data, gint data_len, PurpleConnection *gc);
 void qq_process_buddy_change_status(guint8 *data, gint data_len, PurpleConnection *gc);
 
 void qq_update_buddyies_status(PurpleConnection *gc);
-void qq_update_buddy_status(PurpleConnection *gc, guint32 uid, guint8 status, guint8 flag);
+void qq_update_buddy_status(PurpleConnection *gc, UID uid, guint8 status, guint8 flag);
 void qq_buddy_data_free_all(PurpleConnection *gc);
 #endif
--- a/libpurple/protocols/qq/buddy_memo.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/buddy_memo.c	Sat Feb 12 23:54:14 2011 +0000
@@ -83,7 +83,7 @@
 
 typedef struct _modify_memo_request {
 	PurpleConnection *gc;
-	guint32 bd_uid;
+	UID bd_uid;
 	gchar **segments;
 } modify_memo_request;
 
@@ -107,7 +107,7 @@
 	purple_debug_info("QQ", "memo freed\n");
 }
 
-static void update_buddy_memo(PurpleConnection *gc, guint32 bd_uid, gchar *alias)
+static void update_buddy_memo(PurpleConnection *gc, UID bd_uid, gchar *alias)
 {
 	PurpleAccount *account;
 	PurpleBuddy *buddy;
@@ -127,7 +127,7 @@
 	purple_blist_alias_buddy(buddy, (const char*)alias);
 }
 
-static void request_change_memo(PurpleConnection *gc, guint32 bd_uid, gchar **segments)
+static void request_change_memo(PurpleConnection *gc, UID bd_uid, gchar **segments)
 {
 	gint bytes;
 	/* Attention, length of each segment must be guint8(0~255),
@@ -170,7 +170,7 @@
 static void memo_modify_ok_cb(modify_memo_request *memo_request, PurpleRequestFields *fields)
 {
 	PurpleConnection *gc;
-	guint32 bd_uid;
+	UID bd_uid;
 	gchar **segments;
 	const gchar *utf8_str;
 	gchar *value = NULL;
@@ -187,7 +187,7 @@
 		utf8_str = purple_request_fields_get_string(fields, memo_id[index]);
 		/* update alias */
 		if (QQ_MEMO_ALIAS == index) {
-			update_buddy_memo(gc, bd_uid, segments[QQ_MEMO_ALIAS]);
+			update_buddy_memo(gc, (UID)bd_uid, segments[QQ_MEMO_ALIAS]);
 		}
 		if (NULL == utf8_str) {
 			value = g_strdup("");
@@ -213,7 +213,7 @@
 }
 
 /* memo modify dialogue */
-static void memo_modify_dialogue(PurpleConnection *gc, guint32 bd_uid, gchar **segments, guint32 action)
+static void memo_modify_dialogue(PurpleConnection *gc, UID bd_uid, gchar **segments, guint32 action)
 {
 	modify_memo_request *memo_request;
 	PurpleRequestField *field;
@@ -272,7 +272,7 @@
 	}
 }
 
-static void qq_create_buddy_memo(PurpleConnection *gc, guint32 bd_uid, guint32 action)
+static void qq_create_buddy_memo(PurpleConnection *gc, UID bd_uid, guint32 action)
 {
 	gchar **segments;
 	gint index;
@@ -285,9 +285,11 @@
 	memo_modify_dialogue(gc, bd_uid, segments, action);
 }
 
-/* process reply to get_memo packet */
+/* process reply to get_memo packet
+ * here, update_class will be regarded as buddy's uid. because some 
+ * memo packages returned without uid, which will make us confused */
 void qq_process_get_buddy_memo(PurpleConnection *gc, guint8* data, gint data_len,
-		guint32 update_class, guint32 action)
+		UPDCLS update_class, guint32 action)
 {
 	gchar **segments;
 	gint bytes;
@@ -314,7 +316,9 @@
 	if (1 == data_len) { /* only one byte */
 		purple_debug_info("QQ", "memo packet contains no buddy uid and memo...\n");
 		if (QQ_BUDDY_MEMO_MODIFY == action) {
-			qq_create_buddy_memo(gc, (guint32)update_class, QQ_BUDDY_MEMO_MODIFY);
+			UID mod_uid;
+			mod_uid = (UID)update_class;
+			qq_create_buddy_memo(gc, mod_uid, QQ_BUDDY_MEMO_MODIFY);
 			return;
 		}
 		return;
@@ -354,9 +358,9 @@
 			}
 
 			/* common action, update buddy memo */
-			update_buddy_memo(gc, rcv_uid, segments[QQ_MEMO_ALIAS]);
+			update_buddy_memo(gc, (UID)rcv_uid, segments[QQ_MEMO_ALIAS]);
 
-			/* memo is thing that we regard our buddy as, so we need one more buddy_uid */
+			/* memo is a thing that we regard our buddy as, so we need one more buddy_uid */
 			memo_modify_dialogue(gc, rcv_uid, segments, action);
 			break;
 		default:
@@ -365,8 +369,12 @@
 	}
 }
 
-/* request buddy memo */
-void qq_request_buddy_memo(PurpleConnection *gc, guint32 bd_uid, guint32 update_class, guint32 action)
+/* request buddy memo
+ *
+ * param: gc, uid, update_class, action
+ * here, update_class will be set to buddy's uid. because some memo 
+ * packages returned without uid, which will make us confused */
+void qq_request_buddy_memo(PurpleConnection *gc, UID bd_uid, UPDCLS update_class, guint32 action)
 {
 	guint8 raw_data[16] = {0};
 	gint bytes;
--- a/libpurple/protocols/qq/buddy_memo.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/buddy_memo.h	Sat Feb 12 23:54:14 2011 +0000
@@ -28,6 +28,7 @@
 #include <glib.h>
 #include "connection.h"
 #include "blist.h"
+#include "qq.h"
 
 #define QQ_BUDDY_MEMO_REQUEST_SUCCESS 0x00
 
@@ -40,9 +41,9 @@
 };
 
 
-void qq_process_get_buddy_memo(PurpleConnection *gc, guint8* data, gint data_len, guint32 update_class, guint32 action);
+void qq_process_get_buddy_memo(PurpleConnection *gc, guint8* data, gint data_len, UPDCLS update_class, guint32 action);
 
-void qq_request_buddy_memo(PurpleConnection *gc, guint32 bd_uid, guint32 update_class, guint32 action);
+void qq_request_buddy_memo(PurpleConnection *gc, UID bd_uid, UPDCLS update_class, guint32 action);
 
 #endif
 
--- a/libpurple/protocols/qq/buddy_opt.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/buddy_opt.c	Sat Feb 12 23:54:14 2011 +0000
@@ -51,12 +51,12 @@
 
 typedef struct _qq_buddy_req {
 	PurpleConnection *gc;
-	guint32 uid;
+	UID uid;
 	guint8 *auth;
 	guint8 auth_len;
 } qq_buddy_req;
 
-void add_buddy_authorize_input(PurpleConnection *gc, guint32 uid,
+void add_buddy_authorize_input(PurpleConnection *gc, UID uid,
 		guint8 *auth, guint8 auth_len);
 
 static void buddy_req_free(qq_buddy_req *add_req)
@@ -88,7 +88,7 @@
 	return g;
 }
 
-static qq_buddy_data *qq_buddy_data_new(guint32 uid)
+static qq_buddy_data *qq_buddy_data_new(UID uid)
 {
 	qq_buddy_data *bd = g_new0(qq_buddy_data, 1);
 	memset(bd, 0, sizeof(qq_buddy_data));
@@ -97,7 +97,7 @@
 	return bd;
 }
 
-qq_buddy_data *qq_buddy_data_find(PurpleConnection *gc, guint32 uid)
+qq_buddy_data *qq_buddy_data_find(PurpleConnection *gc, UID uid)
 {
 	gchar *who;
 	PurpleBuddy *buddy;
@@ -131,7 +131,7 @@
 }
 
 /* create purple buddy without data and display with no-auth icon */
-PurpleBuddy *qq_buddy_new(PurpleConnection *gc, guint32 uid)
+PurpleBuddy *qq_buddy_new(PurpleConnection *gc, UID uid)
 {
 	PurpleBuddy *buddy;
 	PurpleGroup *group;
@@ -175,7 +175,7 @@
 	purple_blist_remove_buddy(buddy);
 }
 
-PurpleBuddy *qq_buddy_find(PurpleConnection *gc, guint32 uid)
+PurpleBuddy *qq_buddy_find(PurpleConnection *gc, UID uid)
 {
 	PurpleBuddy *buddy;
 	gchar *who;
@@ -188,7 +188,7 @@
 	return buddy;
 }
 
-PurpleBuddy *qq_buddy_find_or_new(PurpleConnection *gc, guint32 uid)
+PurpleBuddy *qq_buddy_find_or_new(PurpleConnection *gc, UID uid)
 {
 	PurpleBuddy *buddy;
 	qq_buddy_data *bd;
@@ -213,7 +213,7 @@
 }
 
 /* send packet to remove a buddy from my buddy list */
-static void request_remove_buddy(PurpleConnection *gc, guint32 uid)
+static void request_remove_buddy(PurpleConnection *gc, UID uid)
 {
 	gchar uid_str[11];
 	gint bytes;
@@ -226,7 +226,7 @@
 }
 
 static void request_remove_buddy_ex(PurpleConnection *gc,
-		guint32 uid, guint8 *auth, guint8 auth_len)
+		UID uid, guint8 *auth, guint8 auth_len)
 {
 	gint bytes;
 	guint8 *raw_data;
@@ -246,7 +246,7 @@
 	qq_send_cmd_mess(gc, QQ_CMD_REMOVE_BUDDY, raw_data, bytes, 0, uid);
 }
 
-void qq_request_auth_code(PurpleConnection *gc, guint8 cmd, guint16 sub_cmd, guint32 uid)
+void qq_request_auth_code(PurpleConnection *gc, guint8 cmd, guint16 sub_cmd, UID uid)
 {
 	guint8 raw_data[16];
 	gint bytes;
@@ -260,7 +260,7 @@
 	qq_send_cmd_mess(gc, QQ_CMD_AUTH_CODE, raw_data, bytes, 0, uid);
 }
 
-void qq_process_auth_code(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid)
+void qq_process_auth_code(PurpleConnection *gc, guint8 *data, gint data_len, UID uid)
 {
 	gint bytes;
 	guint8 cmd, reply;
@@ -308,7 +308,7 @@
 	buddy_req_free(add_req);
 }
 
-static void add_buddy_question_input(PurpleConnection *gc, guint32 uid, gchar *question)
+static void add_buddy_question_input(PurpleConnection *gc, UID uid, gchar *question)
 {
 	gchar *who, *msg;
 	qq_buddy_req *add_req;
@@ -336,7 +336,7 @@
 }
 
 void qq_request_question(PurpleConnection *gc,
-		guint8 cmd, guint32 uid, const gchar *question_utf8, const gchar *answer_utf8)
+		guint8 cmd, UID uid, const gchar *question_utf8, const gchar *answer_utf8)
 {
 	guint8 raw_data[MAX_PACKET_SIZE - 16];
 	gint bytes;
@@ -371,7 +371,7 @@
 	return;
 }
 
-static void request_add_buddy_by_question(PurpleConnection *gc, guint32 uid,
+static void request_add_buddy_by_question(PurpleConnection *gc, UID uid,
 	guint8 *code, guint16 code_len)
 {
 	guint8 raw_data[MAX_PACKET_SIZE - 16];
@@ -395,7 +395,7 @@
 	qq_send_cmd(gc, QQ_CMD_ADD_BUDDY_AUTH_EX, raw_data, bytes);
 }
 
-void qq_process_question(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid)
+void qq_process_question(PurpleConnection *gc, guint8 *data, gint data_len, UID uid)
 {
 	gint bytes;
 	guint8 cmd, reply;
@@ -461,7 +461,7 @@
 }
 
 /* try to remove myself from someone's buddy list */
-static void request_buddy_remove_me(PurpleConnection *gc, guint32 uid)
+static void request_buddy_remove_me(PurpleConnection *gc, UID uid)
 {
 	guint8 raw_data[16] = {0};
 	gint bytes = 0;
@@ -474,7 +474,7 @@
 }
 
 /* try to add a buddy without authentication */
-static void request_add_buddy_no_auth(PurpleConnection *gc, guint32 uid)
+static void request_add_buddy_no_auth(PurpleConnection *gc, UID uid)
 {
 	gchar uid_str[11];
 
@@ -486,7 +486,7 @@
 			(guint8 *) uid_str, strlen(uid_str), 0, uid);
 }
 
-static void request_add_buddy_no_auth_ex(PurpleConnection *gc, guint32 uid)
+static void request_add_buddy_no_auth_ex(PurpleConnection *gc, UID uid)
 {
 	guint bytes;
 	guint8 raw_data[16];
@@ -499,7 +499,7 @@
 }
 
 /* this buddy needs authentication, text conversion is done at lowest level */
-static void request_add_buddy_auth(PurpleConnection *gc, guint32 uid, const gchar response, const gchar *text)
+static void request_add_buddy_auth(PurpleConnection *gc, UID uid, const gchar response, const gchar *text)
 {
 	guint8 raw_data[MAX_PACKET_SIZE - 16];
 	gint bytes;
@@ -526,7 +526,7 @@
 	qq_send_cmd(gc, QQ_CMD_ADD_BUDDY_AUTH, raw_data, bytes);
 }
 
-static void request_add_buddy_auth_ex(PurpleConnection *gc, guint32 uid,
+static void request_add_buddy_auth_ex(PurpleConnection *gc, UID uid,
 	const gchar *text, guint8 *auth, guint8 auth_len)
 {
 	guint8 raw_data[MAX_PACKET_SIZE - 16];
@@ -643,7 +643,7 @@
 	buddy_req_free(add_req);
 }
 
-void add_buddy_authorize_input(PurpleConnection *gc, guint32 uid,
+void add_buddy_authorize_input(PurpleConnection *gc, UID uid,
 		guint8 *auth, guint8 auth_len)
 {
 	gchar *who, *msg;
@@ -683,7 +683,7 @@
 void qq_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group)
 {
 	qq_data *qd;
-	guint32 uid;
+	UID uid;
 
 	g_return_if_fail(NULL != gc && NULL != gc->proto_data);
 	g_return_if_fail(buddy != NULL);
@@ -733,7 +733,7 @@
 }
 
 /* process the server reply for my request to remove a buddy */
-void qq_process_remove_buddy(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid)
+void qq_process_remove_buddy(PurpleConnection *gc, guint8 *data, gint data_len, UID uid)
 {
 	PurpleBuddy *buddy = NULL;
 	gchar *msg;
@@ -756,7 +756,7 @@
 }
 
 /* process the server reply for my request to remove myself from a buddy */
-void qq_process_buddy_remove_me(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid)
+void qq_process_buddy_remove_me(PurpleConnection *gc, guint8 *data, gint data_len, UID uid)
 {
 	gchar *msg;
 
@@ -772,7 +772,7 @@
 }
 
 void qq_process_add_buddy_no_auth(PurpleConnection *gc,
-		guint8 *data, gint data_len, guint32 uid)
+		guint8 *data, gint data_len, UID uid)
 {
 	qq_data *qd;
 	gchar **segments;
@@ -834,11 +834,11 @@
 }
 
 void qq_process_add_buddy_no_auth_ex(PurpleConnection *gc,
-		guint8 *data, gint data_len, guint32 uid)
+		guint8 *data, gint data_len, UID uid)
 {
 	qq_data *qd;
 	gint bytes;
-	guint32 dest_uid;
+	UID dest_uid;
 	guint8 reply;
 	guint8 auth_type;
 
@@ -903,7 +903,7 @@
 {
 	qq_data *qd;
 	qq_buddy_data *bd;
-	guint32 uid;
+	UID uid;
 
 	g_return_if_fail(gc != NULL && gc->proto_data != NULL);
 	g_return_if_fail(buddy != NULL);
@@ -933,7 +933,7 @@
 	 * otherwise purple segmentation fault */
 }
 
-static void buddy_add_input(PurpleConnection *gc, guint32 uid, gchar *reason)
+static void buddy_add_input(PurpleConnection *gc, UID uid, gchar *reason)
 {
 	PurpleAccount *account = purple_connection_get_account(gc);
 	qq_buddy_req *add_req;
@@ -967,7 +967,7 @@
 static void server_buddy_add_request(PurpleConnection *gc, gchar *from, gchar *to,
 		guint8 *data, gint data_len)
 {
-	guint32 uid;
+	UID uid;
 	gchar *msg, *reason;
 
 	g_return_if_fail(from != NULL && to != NULL);
@@ -996,7 +996,7 @@
 	gint bytes;
 	guint8 cmd;
 	guint8 reply;
-	guint32 uid;
+	UID uid;
 	guint16 flag1, flag2;
 
 	g_return_if_fail(data != NULL && data_len >= 5);
@@ -1026,7 +1026,7 @@
 {
 	guint8 *raw_data;
 	gint bytes;
-	guint32 uid;
+	UID uid;
 
 	g_return_if_fail(code != NULL && code_len > 0 && from != NULL);
 
@@ -1073,7 +1073,7 @@
 		guint8 *data, gint data_len)
 {
 	gint bytes;
-	guint32 uid;
+	UID uid;
 	gchar *msg;
 	guint8 allow_reverse;
 
@@ -1103,7 +1103,7 @@
 {
 	PurpleAccount *account = purple_connection_get_account(gc);
 	PurpleBuddy *buddy;
-	guint32 uid;
+	UID uid;
 	qq_buddy_req *add_req;
 	gchar *who;
 	gchar *primary;
@@ -1177,7 +1177,7 @@
 {
 	PurpleAccount *account = purple_connection_get_account(gc);
 	qq_data *qd;
-	guint32 uid;
+	UID uid;
 
 	g_return_if_fail(from != NULL && to != NULL);
 
@@ -1204,7 +1204,7 @@
 static void server_buddy_rejected_me(PurpleConnection *gc, gchar *from, gchar *to,
 		guint8 *data, gint data_len)
 {
-	guint32 uid;
+	UID uid;
 	PurpleBuddy *buddy;
 	gchar *msg, *msg_utf8;
 	gint bytes;
--- a/libpurple/protocols/qq/buddy_opt.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/buddy_opt.h	Sat Feb 12 23:54:14 2011 +0000
@@ -54,31 +54,31 @@
 void qq_remove_buddy_and_me(PurpleBlistNode * node);
 void qq_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group);
 
-void qq_process_remove_buddy(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid);
-void qq_process_buddy_remove_me(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid);
+void qq_process_remove_buddy(PurpleConnection *gc, guint8 *data, gint data_len, UID uid);
+void qq_process_buddy_remove_me(PurpleConnection *gc, guint8 *data, gint data_len, UID uid);
 void qq_process_add_buddy_no_auth(PurpleConnection *gc,
-		guint8 *data, gint data_len, guint32 uid);
+		guint8 *data, gint data_len, UID uid);
 void qq_process_add_buddy_no_auth_ex(PurpleConnection *gc,
-		guint8 *data, gint data_len, guint32 uid);
+		guint8 *data, gint data_len, UID uid);
 void qq_process_add_buddy_auth(guint8 *data, gint data_len, PurpleConnection *gc);
 void qq_process_buddy_from_server(PurpleConnection *gc, int funct,
 		gchar *from, gchar *to, guint8 *data, gint data_len);
 
 void qq_process_buddy_check_code(PurpleConnection *gc, guint8 *data, gint data_len);
 
-void qq_request_auth_code(PurpleConnection *gc, guint8 cmd, guint16 sub_cmd, guint32 uid);
-void qq_process_auth_code(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid);
+void qq_request_auth_code(PurpleConnection *gc, guint8 cmd, guint16 sub_cmd, UID uid);
+void qq_process_auth_code(PurpleConnection *gc, guint8 *data, gint data_len, UID uid);
 void qq_request_question(PurpleConnection *gc,
-		guint8 cmd, guint32 uid, const gchar *question_utf8, const gchar *answer_utf8);
-void qq_process_question(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid);
+		guint8 cmd, UID uid, const gchar *question_utf8, const gchar *answer_utf8);
+void qq_process_question(PurpleConnection *gc, guint8 *data, gint data_len, UID uid);
 
 void qq_process_add_buddy_auth_ex(PurpleConnection *gc, guint8 *data, gint data_len, guint32 ship32);
 
-qq_buddy_data *qq_buddy_data_find(PurpleConnection *gc, guint32 uid);
+qq_buddy_data *qq_buddy_data_find(PurpleConnection *gc, UID uid);
 void qq_buddy_data_free(qq_buddy_data *bd);
 
-PurpleBuddy *qq_buddy_new(PurpleConnection *gc, guint32 uid);
-PurpleBuddy *qq_buddy_find_or_new(PurpleConnection *gc, guint32 uid);
-PurpleBuddy *qq_buddy_find(PurpleConnection *gc, guint32 uid);
+PurpleBuddy *qq_buddy_new(PurpleConnection *gc, UID uid);
+PurpleBuddy *qq_buddy_find_or_new(PurpleConnection *gc, UID uid);
+PurpleBuddy *qq_buddy_find(PurpleConnection *gc, UID uid);
 PurpleGroup *qq_group_find_or_new(const gchar *group_name);
 #endif
--- a/libpurple/protocols/qq/file_trans.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/file_trans.c	Sat Feb 12 23:54:14 2011 +0000
@@ -38,14 +38,12 @@
 #include "send_file.h"
 #include "utils.h"
 
-struct _qq_file_header {
+typedef struct _qq_file_header {
 	guint16 client_ver;
 	guint8 file_key;
-	guint32 sender_uid;
-	guint32 receiver_uid;
-};
-
-typedef struct _qq_file_header qq_file_header;
+	UID sender_uid;
+	UID receiver_uid;
+} qq_file_header;
 
 static guint32 _get_file_key(guint8 seed)
 {
@@ -62,12 +60,12 @@
 	return _get_file_key(seed);
 }
 
-static guint32 _decrypt_qq_uid(guint32 uid, guint32 key)
+static guint32 _decrypt_qq_uid(UID uid, guint32 key)
 {
 	return ~(uid ^ key);
 }
 
-static guint32 _encrypt_qq_uid(guint32 uid, guint32 key)
+static guint32 _encrypt_qq_uid(UID uid, guint32 key)
 {
 	return (~uid) ^ key;
 }
@@ -232,7 +230,7 @@
 }
 #endif
 
-static gint _qq_send_file(PurpleConnection *gc, guint8 *data, gint len, guint16 packet_type, guint32 to_uid)
+static gint _qq_send_file(PurpleConnection *gc, guint8 *data, gint len, guint16 packet_type, UID to_uid)
 {
 	guint8 *raw_data;
 	gint bytes = 0;
@@ -259,7 +257,7 @@
 }
 
 /* send a file to udp channel with QQ_FILE_CONTROL_PACKET_TAG */
-void qq_send_file_ctl_packet(PurpleConnection *gc, guint16 packet_type, guint32 to_uid, guint8 hellobyte)
+void qq_send_file_ctl_packet(PurpleConnection *gc, guint16 packet_type, UID to_uid, guint8 hellobyte)
 {
 	qq_data *qd;
 	gint bytes, bytes_expected, encrypted_len;
--- a/libpurple/protocols/qq/file_trans.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/file_trans.h	Sat Feb 12 23:54:14 2011 +0000
@@ -26,6 +26,7 @@
 #define _QQ_QQ_FILE_TRANS_H_
 
 #include "server.h"
+#include "qq.h"
 
 enum {
 	QQ_FILE_CMD_SENDER_SAY_HELLO = 0x31,
@@ -59,7 +60,7 @@
 #define QQ_FILE_AGENT_PACKET_TAG 0x04
 /* #define QQ_PACKET_TAIL          0x03 */   /* all QQ text packets end with it */
 
-void qq_send_file_ctl_packet(PurpleConnection *gc, guint16 packet_type, guint32 to_uid, guint8 hellobyte);
+void qq_send_file_ctl_packet(PurpleConnection *gc, guint16 packet_type, UID to_uid, guint8 hellobyte);
 void qq_process_recv_file(PurpleConnection *gc, guint8 *data, gint len);
 /* void qq_send_file_data_packet(PurpleConnection *gc, guint16 packet_type, guint8 sub_type, guint32 fragment_index, guint16 seq, guint8 *data, gint len); */
 void qq_xfer_close_file(PurpleXfer *xfer);
--- a/libpurple/protocols/qq/group.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/group.h	Sat Feb 12 23:54:14 2011 +0000
@@ -40,14 +40,13 @@
 	QQ_ROOM_ROLE_ADMIN
 } qq_room_role;
 
-typedef struct _qq_room_data qq_room_data;
-struct _qq_room_data {
+typedef struct _qq_room_data {
 	/* all these will be saved when we exit Purple */
 	qq_room_role my_role;	/* my role for this room */
 	guint32 id;
 	guint32 ext_id;
 	guint8 type8;			/* permanent or temporory */
-	guint32 creator_uid;
+	UID creator_uid;
 	guint32 category;
 	guint8 auth_type;
 	gchar *title_utf8;
@@ -57,7 +56,7 @@
 
 	gboolean is_got_buddies;
 	GList *members;
-};
+} qq_room_data;
 
 GList *qq_chat_info(PurpleConnection *gc);
 GHashTable *qq_chat_info_defaults(PurpleConnection *gc, const gchar *chat_name);
--- a/libpurple/protocols/qq/group_im.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/group_im.c	Sat Feb 12 23:54:14 2011 +0000
@@ -161,7 +161,7 @@
 }
 
 void qq_room_got_chat_in(PurpleConnection *gc,
-		guint32 room_id, guint32 uid_from, const gchar *msg, time_t in_time)
+		guint32 room_id, UID uid_from, const gchar *msg, time_t in_time)
 {
 	PurpleConversation *conv;
 	qq_data *qd;
@@ -207,10 +207,11 @@
 {
 	gchar *msg_smiley, *msg_fmt, *msg_utf8;
 	gint bytes, tail_len;
+	qq_data *qd;
 	struct {
 		guint32 ext_id;
 		guint8 type8;
-		guint32 member_uid;
+		UID member_uid;
 		guint16 unknown;
 		guint16 msg_seq;
 		time_t send_time;
@@ -222,11 +223,15 @@
 	guint16 content_type;
 	guint8 frag_count, frag_index;
 	guint16 msg_id;
+	guint32 use_default_font;
 	qq_im_format *fmt = NULL;
+	qd = (qq_data *) gc->proto_data;
 
 	/* at least include im_text.msg_len */
 	g_return_if_fail(data != NULL && data_len > 23);
 
+	use_default_font = (qd->custom) & QQ_CUSTOM_USE_DEFAULT_FONT;
+
 	/* qq_show_packet("ROOM_IM", data, data_len); */
 	memset(&im_text, 0, sizeof(im_text));
 	bytes = 0;
@@ -279,8 +284,14 @@
 	/* group im_group has no flag to indicate whether it has font_attr or not */
 	msg_smiley = qq_emoticon_to_purple(im_text.msg);
 	if (fmt != NULL) {
+		purple_debug_info("QQ", "going to use_default_font\n");
+		if (QQ_CUSTOM_USE_DEFAULT_FONT == use_default_font) {
+			qq_im_fmt_reset_font(fmt);
+			purple_debug_info("QQ", "use_default_font set\n");
+		}
 		msg_fmt = qq_im_fmt_to_purple(fmt, msg_smiley);
 		msg_utf8 =  qq_to_utf8(msg_fmt, QQ_CHARSET_DEFAULT);
+		purple_debug_info("QQ", "passed!\n");
 		g_free(msg_fmt);
 		qq_im_fmt_free(fmt);
 	} else {
--- a/libpurple/protocols/qq/group_im.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/group_im.h	Sat Feb 12 23:54:14 2011 +0000
@@ -30,11 +30,16 @@
 #include "conversation.h"
 #include "group.h"
 
+enum {
+	QQ_CUSTOM_USE_DEFAULT_FONT = 0x00000001,
+	QQ_CUSTOM_NONE = 0x00000000
+};
+
 PurpleConversation *qq_room_conv_open(PurpleConnection *gc, qq_room_data *rmd);
 void qq_room_conv_set_onlines(PurpleConnection *gc, qq_room_data *rmd);
 
 void qq_room_got_chat_in(PurpleConnection *gc,
-		guint32 room_id, guint32 uid_from, const gchar *msg, time_t in_time);
+		guint32 room_id, UID uid_from, const gchar *msg, time_t in_time);
 
 int qq_chat_send(PurpleConnection *gc, int id, const char *message, PurpleMessageFlags flags);
 void qq_process_room_send_im(PurpleConnection *gc, guint8 *data, gint len);
@@ -43,3 +48,4 @@
 void qq_process_room_im(guint8 *data, gint data_len, guint32 id, PurpleConnection *gc, guint16 msg_type);
 
 #endif
+
--- a/libpurple/protocols/qq/group_info.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/group_info.c	Sat Feb 12 23:54:14 2011 +0000
@@ -65,7 +65,7 @@
 }
 
 /* send packet to get info for each group member */
-gint qq_request_room_get_buddies(PurpleConnection *gc, guint32 room_id, guint32 update_class)
+gint qq_request_room_get_buddies(PurpleConnection *gc, guint32 room_id, UPDCLS update_class)
 {
 	guint8 *raw_data;
 	gint bytes, num;
@@ -177,7 +177,8 @@
 	PurpleConversation *conv;
 	guint8 organization, role;
 	guint16 unknown, max_members;
-	guint32 member_uid, id, ext_id;
+	UID member_uid;
+	guint32 id, ext_id;
 	guint32 unknown4;
 	guint8 unknown1;
 	gint bytes, num;
@@ -286,7 +287,8 @@
 
 void qq_process_room_cmd_get_onlines(guint8 *data, gint len, PurpleConnection *gc)
 {
-	guint32 room_id, member_uid;
+	guint32 room_id;
+	UID member_uid;
 	guint8 unknown;
 	gint bytes, num;
 	qq_room_data *rmd;
@@ -334,7 +336,8 @@
 {
 	gint bytes;
 	gint num;
-	guint32 id, member_uid;
+	guint32 id;
+	UID member_uid;
 	guint16 unknown;
 	qq_room_data *rmd;
 	qq_buddy_data *bd;
--- a/libpurple/protocols/qq/group_info.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/group_info.h	Sat Feb 12 23:54:14 2011 +0000
@@ -34,7 +34,7 @@
 	QQ_ROOM_INFO_DISPLAY
 };
 
-gint qq_request_room_get_buddies(PurpleConnection *gc, guint32 room_id, guint32 update_class);
+gint qq_request_room_get_buddies(PurpleConnection *gc, guint32 room_id, UPDCLS update_class);
 
 void qq_process_room_cmd_get_info(guint8 *data, gint len, guint32 action, PurpleConnection *gc);
 void qq_process_room_cmd_get_onlines(guint8 *data, gint len, PurpleConnection *gc);
--- a/libpurple/protocols/qq/group_internal.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/group_internal.c	Sat Feb 12 23:54:14 2011 +0000
@@ -207,7 +207,7 @@
 }
 
 /* find a qq_buddy_data by uid, called by im.c */
-qq_buddy_data *qq_room_buddy_find(qq_room_data *rmd, guint32 uid)
+qq_buddy_data *qq_room_buddy_find(qq_room_data *rmd, UID uid)
 {
 	GList *list;
 	qq_buddy_data *bd;
@@ -226,7 +226,7 @@
 }
 
 /* remove a qq_buddy_data by uid, called by qq_group_opt.c */
-void qq_room_buddy_remove(qq_room_data *rmd, guint32 uid)
+void qq_room_buddy_remove(qq_room_data *rmd, UID uid)
 {
 	GList *list;
 	qq_buddy_data *bd;
@@ -244,7 +244,7 @@
 	}
 }
 
-qq_buddy_data *qq_room_buddy_find_or_new(PurpleConnection *gc, qq_room_data *rmd, guint32 member_uid)
+qq_buddy_data *qq_room_buddy_find_or_new(PurpleConnection *gc, qq_room_data *rmd, UID member_uid)
 {
 	qq_buddy_data *member, *bd;
 	PurpleBuddy *buddy;
--- a/libpurple/protocols/qq/group_internal.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/group_internal.h	Sat Feb 12 23:54:14 2011 +0000
@@ -36,9 +36,9 @@
 void qq_room_remove(PurpleConnection *gc, guint32 id);
 void qq_room_update_chat_info(PurpleChat *chat, qq_room_data *rmd);
 
-qq_buddy_data *qq_room_buddy_find(qq_room_data *rmd, guint32 uid);
-void qq_room_buddy_remove(qq_room_data *rmd, guint32 uid);
-qq_buddy_data *qq_room_buddy_find_or_new(PurpleConnection *gc, qq_room_data *rmd, guint32 member_uid);
+qq_buddy_data *qq_room_buddy_find(qq_room_data *rmd, UID uid);
+void qq_room_buddy_remove(qq_room_data *rmd, UID uid);
+qq_buddy_data *qq_room_buddy_find_or_new(PurpleConnection *gc, qq_room_data *rmd, UID member_uid);
 
 void qq_room_data_initial(PurpleConnection *gc);
 void qq_room_data_free_all(PurpleConnection *gc);
--- a/libpurple/protocols/qq/group_join.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/group_join.c	Sat Feb 12 23:54:14 2011 +0000
@@ -155,7 +155,7 @@
 }
 
 void qq_send_cmd_group_auth(PurpleConnection *gc, qq_room_data *rmd,
-		guint8 opt, guint32 uid, const gchar *reason_utf8)
+		guint8 opt, UID uid, const gchar *reason_utf8)
 {
 	guint8 raw_data[MAX_PACKET_SIZE - 16];
 	gint bytes;
--- a/libpurple/protocols/qq/group_join.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/group_join.h	Sat Feb 12 23:54:14 2011 +0000
@@ -49,7 +49,7 @@
 void qq_request_room_search(PurpleConnection *gc, guint32 ext_id, int action);
 void qq_process_room_search(PurpleConnection *gc, guint8 *data, gint len, guint32 ship32);
 
-void qq_send_cmd_group_auth(PurpleConnection *gc, qq_room_data *rmd, guint8 opt, guint32 uid, const gchar *reason_utf8);
+void qq_send_cmd_group_auth(PurpleConnection *gc, qq_room_data *rmd, guint8 opt, UID uid, const gchar *reason_utf8);
 void qq_group_join(PurpleConnection *gc, GHashTable *data);
 void qq_request_room_join(PurpleConnection *gc, qq_room_data *rmd);
 void qq_room_quit(PurpleConnection *gc, guint32 room_id);
@@ -57,3 +57,4 @@
 void qq_process_group_cmd_join_group_auth(guint8 *data, gint len, PurpleConnection *gc);
 void qq_process_group_cmd_join_group(guint8 *data, gint len, PurpleConnection *gc);
 #endif
+
--- a/libpurple/protocols/qq/im.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/im.c	Sat Feb 12 23:54:14 2011 +0000
@@ -67,15 +67,14 @@
 	QQ_NORMAL_IM_FILE_EX_NOTIFY_IP = 0x87
 };
 
-typedef struct _qq_im_header qq_im_header;
-struct _qq_im_header {
+typedef struct _qq_im_header {
 	/* this is the common part of normal_text */
 	guint16 version_from;
-	guint32 uid_from;
-	guint32 uid_to;
+	UID uid_from;
+	UID uid_to;
 	guint8 session_md5[QQ_KEY_LENGTH];
 	guint16 im_type;
-};
+} qq_im_header;
 
 /* read the common parts of the normal_im,
  * returns the bytes read if succeed, or -1 if there is any error */
@@ -93,11 +92,10 @@
 	return bytes;
 }
 
-typedef struct _qq_emoticon qq_emoticon;
-struct _qq_emoticon {
+typedef struct _qq_emoticon {
 	guint8 symbol;
 	gchar *name;
-};
+} qq_emoticon;
 
 static gboolean emoticons_is_sorted = FALSE;
 /* Map for purple smiley convert to qq, need qsort */
@@ -528,7 +526,8 @@
 qq_im_format *qq_im_fmt_new(void)
 {
 	qq_im_format *fmt;
-	const gchar simsun[] = { 0xcb, 0xce, 0xcc, 0xe5, 0};	/* simsun in Chinese */
+	/* '0xcb, 0xce, 0xcc, 0xe5' means Chinese '絎�篏�' in utf8 */
+	const gchar simsun[] = { 0xcb, 0xce, 0xcc, 0xe5, 0};
 
 	fmt = g_new0(qq_im_format, 1);
 	memset(fmt, 0, sizeof(qq_im_format));
@@ -541,6 +540,17 @@
 	return fmt;
 }
 
+void qq_im_fmt_reset_font(qq_im_format *fmt)
+{
+	const gchar simsun[] = {0xcb, 0xce, 0xcc, 0xe5, 0x00};
+	g_return_if_fail(NULL != fmt);
+
+	if (NULL != fmt->font) {
+		g_free(fmt->font);
+		fmt->font = g_strdup(simsun);
+	}
+}
+
 qq_im_format *qq_im_fmt_new_by_purple(const gchar *msg)
 {
 	qq_im_format *fmt;
@@ -1036,7 +1046,7 @@
 }
 
 /* send an IM to uid_to */
-static void request_send_im(PurpleConnection *gc, guint32 uid_to, gint type,
+static void request_send_im(PurpleConnection *gc, UID uid_to, gint type,
 	qq_im_format *fmt, gchar *msg, guint8 id, guint8 frag_count, guint8 frag_index)
 {
 	qq_data *qd;
@@ -1241,7 +1251,7 @@
 gint qq_send_im(PurpleConnection *gc, const gchar *who, const gchar *what, PurpleMessageFlags flags)
 {
 	qq_data *qd;
-	guint32 uid_to;
+	UID uid_to;
 	gint type;
 	qq_im_format *fmt;
 	gchar *msg_stripped, *tmp;
--- a/libpurple/protocols/qq/im.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/im.h	Sat Feb 12 23:54:14 2011 +0000
@@ -49,6 +49,10 @@
 };
 
 typedef struct {
+	/* attr:
+		bit0-4 for font size, bit5 for bold,
+		bit6 for italic, bit7 for underline
+	*/
 	guint8 attr;
 	guint8 rgb[3];
 	guint16 charset;
@@ -61,6 +65,7 @@
 
 qq_im_format *qq_im_fmt_new(void);
 void qq_im_fmt_free(qq_im_format *fmt);
+void qq_im_fmt_reset_font(qq_im_format *fmt);
 qq_im_format *qq_im_fmt_new_by_purple(const gchar *msg);
 gchar *qq_im_fmt_to_purple(qq_im_format *fmt, gchar *text);
 gboolean qq_im_smiley_none(const gchar *msg);
--- a/libpurple/protocols/qq/qq.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq.c	Sat Feb 12 23:54:14 2011 +0000
@@ -173,6 +173,13 @@
 	qd->is_show_news = purple_account_get_bool(account, "show_news", TRUE);
 	qd->is_show_chat = purple_account_get_bool(account, "show_chat", TRUE);
 
+	if (purple_account_get_bool(account, "default_font", FALSE)) {
+		qd->custom = QQ_CUSTOM_USE_DEFAULT_FONT;
+	}
+	else {
+		qd->custom = QQ_CUSTOM_NONE;
+	}
+
 	qd->resend_times = purple_prefs_get_int("/plugins/prpl/qq/resend_times");
 	if (qd->resend_times <= 1) qd->itv_config.resend = 4;
 
@@ -443,7 +450,7 @@
 /* send packet to get who's detailed information */
 static void qq_show_buddy_info(PurpleConnection *gc, const gchar *who)
 {
-	guint32 uid;
+	UID uid;
 	qq_data *qd;
 
 	qd = gc->proto_data;
@@ -823,7 +830,7 @@
 	PurpleBuddy *buddy;
 	qq_buddy_data *bd;
 	PurpleConnection *gc;
-	guint32 bd_uid;
+	UID bd_uid;
 
 	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
 
@@ -927,7 +934,7 @@
 {
 	qq_data *qd;
 	gchar *uid_str;
-	guint32 uid;
+	UID uid;
 
 	purple_debug_info("QQ", "Get chat buddy info of %s\n", who);
 	g_return_if_fail(who != NULL);
@@ -1142,6 +1149,9 @@
 	option = purple_account_option_bool_new(_("Show chat room when msg comes"), "show_chat", TRUE);
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
 
+	option = purple_account_option_bool_new(_("Use default font"), "default_font", FALSE);
+	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
+
 	option = purple_account_option_int_new(_("Keep alive interval (seconds)"), "keep_alive_interval", 60);
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
 
--- a/libpurple/protocols/qq/qq.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq.h	Sat Feb 12 23:54:14 2011 +0000
@@ -39,22 +39,19 @@
 #define qq_strlen(s) ((s)!=NULL?strlen(s):0)
 #define qq_strcmp(s1,s2) ((s1)!=NULL && (s2)!=NULL?strcmp(s1,s2):0)
 
-typedef struct _qq_data qq_data;
-typedef struct _qq_buddy_data qq_buddy_data;
-typedef struct _qq_interval qq_interval;
-typedef struct _qq_net_stat qq_net_stat;
-typedef struct _qq_login_data qq_login_data;
-typedef struct _qq_captcha_data qq_captcha_data;
+/* business logic layer */
+typedef guint32 UPDCLS;
+typedef guint32 UID;
 
-struct _qq_captcha_data {
+typedef struct _qq_captcha_data {
 	guint8 *token;
 	guint16 token_len;
 	guint8 next_index;
 	guint8 *data;
 	guint16 data_len;
-};
+} qq_captcha_data;
 
-struct _qq_login_data {
+typedef struct _qq_login_data {
 	guint8 random_key[QQ_KEY_LENGTH];			/* first encrypt key generated by client */
 	guint8 *token;				/* get from server */
 	guint8 token_len;
@@ -67,24 +64,24 @@
 	guint8 *login_token;
 	guint16 login_token_len;
 	guint8 login_key[QQ_KEY_LENGTH];
-};
+} qq_login_data;
 
-struct _qq_interval {
+typedef struct _qq_interval {
 	gint resend;
 	gint keep_alive;
 	gint update;
-};
+} qq_interval;
 
-struct _qq_net_stat {
+typedef struct _qq_net_stat {
 	glong sent;
 	glong resend;
 	glong lost;
 	glong rcved;
 	glong rcved_dup;
-};
+} qq_net_stat;
 
-struct _qq_buddy_data {
-	guint32 uid;
+typedef struct _qq_buddy_data {
+	UID uid;
 	guint16 face;		/* index: 0 - 299 */
 	guint8 age;
 	guint8 gender;
@@ -104,7 +101,7 @@
 	gchar** memo;
 
 	gint8  role;		/* role in group, used only in group->members list */
-};
+} qq_buddy_data;
 
 typedef struct _qq_connection qq_connection;
 struct _qq_connection {
@@ -118,7 +115,7 @@
 	int tcp_rxlen;
 };
 
-struct _qq_data {
+typedef struct _qq_data {
 	PurpleConnection *gc;
 
 	GSList *openconns;
@@ -153,7 +150,7 @@
 
 	GList *transactions;	/* check ack packet and resend */
 
-	guint32 uid;			/* QQ number */
+	UID uid;			/* QQ number */
 
 	qq_login_data ld;
 	qq_captcha_data captcha;
@@ -187,8 +184,9 @@
 	gboolean is_show_notice;
 	gboolean is_show_news;
 	gboolean is_show_chat;
+	guint32 custom;
 
 	guint16 send_im_id;		/* send IM sequence number */
-};
+} qq_data;
 
 #endif
--- a/libpurple/protocols/qq/qq_base.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_base.c	Sat Feb 12 23:54:14 2011 +0000
@@ -42,7 +42,7 @@
 #include "utils.h"
 
 /* generate a md5 key using uid and session_key */
-static void get_session_md5(guint8 *session_md5, guint32 uid, guint8 *session_key)
+static void get_session_md5(guint8 *session_md5, UID uid, guint8 *session_key)
 {
 	guint8 src[QQ_KEY_LENGTH + QQ_KEY_LENGTH];
 	gint bytes = 0;
@@ -60,7 +60,7 @@
 	gint bytes;
 
 	guint8 ret;
-	guint32 uid;
+	UID uid;
 	struct in_addr ip;
 	guint16 port;
 	struct tm *tm_local;
@@ -151,7 +151,7 @@
 	gint bytes;
 	struct {
 		guint8 result;
-		guint32 uid;
+		UID uid;
 		struct in_addr new_server_ip;
 		guint16 new_server_port;
 	} packet;
@@ -1236,7 +1236,7 @@
 	qq_data *qd;
 	gint bytes;
 	guint8 ret;
-	guint32 uid;
+	UID uid;
 	gchar *error;
 	gchar *msg;
 	gchar *msg_utf8;
@@ -1427,7 +1427,7 @@
 	qq_data *qd;
 	gint bytes;
 	guint8 ret;
-	guint32 uid;
+	UID uid;
 	gchar *error;
 	gchar *msg;
 	gchar *msg_utf8;
--- a/libpurple/protocols/qq/qq_base.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_base.h	Sat Feb 12 23:54:14 2011 +0000
@@ -28,12 +28,12 @@
 #include <glib.h>
 #include "connection.h"
 
-#define QQ_LOGIN_REPLY_OK							0x00
+#define QQ_LOGIN_REPLY_OK				0x00
 #define QQ_LOGIN_REPLY_REDIRECT				0x01
 /* defined by myself */
 #define QQ_LOGIN_REPLY_CAPTCHA_DLG			0xfd
-#define QQ_LOGIN_REPLY_NEXT_TOKEN_EX		0xfe
-#define QQ_LOGIN_REPLY_ERR							0xff
+#define QQ_LOGIN_REPLY_NEXT_TOKEN_EX			0xfe
+#define QQ_LOGIN_REPLY_ERR				0xff
 
 #define QQ_LOGIN_MODE_NORMAL		0x0a
 #define QQ_LOGIN_MODE_AWAY	    	0x1e
@@ -76,3 +76,4 @@
 void qq_request_login_2008(PurpleConnection *gc);
 guint8 qq_process_login_2008( PurpleConnection *gc, guint8 *data, gint data_len);
 #endif
+
--- a/libpurple/protocols/qq/qq_define.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_define.c	Sat Feb 12 23:54:14 2011 +0000
@@ -118,6 +118,8 @@
 		return "QQMac 1.0 preview1 build 670";
 	case QQ_CLIENT_1441:
 		return "QQ2009 preview2";
+	case QQ_CLIENT_1663:
+		return "QQ2009";
 	case QQ_SERVER_0100:
 		return "QQ Server 0100";
 	default:
--- a/libpurple/protocols/qq/qq_define.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_define.h	Sat Feb 12 23:54:14 2011 +0000
@@ -35,7 +35,9 @@
 
 #define QQ_CLIENT_0D55 0x0d55	/* QQ2005 used by openq before */
 #define QQ_CLIENT_111D 0x111D	/* QQ2007 */
-#define QQ_CLIENT_115B 0x115B	/* QQ2008 He Sui*/
+#define QQ_CLIENT_115B 0x115B	/* QQ2008 He Sui */
+#define QQ_CLIENT_1663 0x1663	/* QQ2009 Release */
+#define QQ_CLIENT_1801 0x1801	/* QQ2009 International Beta1 */
 
 const gchar *qq_get_ver_desc(gint source);
 
--- a/libpurple/protocols/qq/qq_network.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_network.c	Sat Feb 12 23:54:14 2011 +0000
@@ -42,11 +42,11 @@
 #define QQ_DEFAULT_PORT					8000
 
 /* set QQ_CONNECT_MAX to 1, when test reconnecting */
-#define QQ_CONNECT_MAX						3
+#define QQ_CONNECT_MAX				3
 #define QQ_CONNECT_INTERVAL			2
-#define QQ_CONNECT_CHECK					5
-#define QQ_KEEP_ALIVE_INTERVAL		60
-#define QQ_TRANS_INTERVAL				10
+#define QQ_CONNECT_CHECK			5
+#define QQ_KEEP_ALIVE_INTERVAL			60
+#define QQ_TRANS_INTERVAL			10
 
 gboolean connect_to_server(PurpleConnection *gc, gchar *server, gint port);
 
@@ -63,6 +63,7 @@
 
 static qq_connection *connection_create(qq_data *qd, int fd) {
 	qq_connection *ret = g_new0(qq_connection, 1);
+	g_return_val_if_fail(ret != NULL, NULL);
 	ret->fd = fd;
 	qd->openconns = g_slist_append(qd->openconns, ret);
 	return ret;
@@ -268,7 +269,7 @@
 	guint16 seq;		/* May be ack_seq or send_seq, depends on cmd */
 	guint8 room_cmd;
 	guint32 room_id;
-	guint32 update_class;
+	UPDCLS update_class;
 	guint32 ship32;
 	int ret;
 
@@ -772,9 +773,14 @@
 	}
 
 	/* _qq_show_socket("Got login socket", source); */
+	/* ok, already connected to the server */
 	qd->fd = source;
 	conn = connection_create(qd, source);
+	g_return_if_fail( conn != NULL );
+
 	if (qd->use_tcp) {
+		/* events which match "PURPLE_INPUT_READ" of
+		 * "source" would trigger the callback function */
 		conn->input_handler = purple_input_add(source, PURPLE_INPUT_READ, tcp_pending, gc);
 	} else {
 		conn->input_handler = purple_input_add(source, PURPLE_INPUT_READ, udp_pending, gc);
@@ -1131,7 +1137,7 @@
 /* Encrypt data with session_key, and send packet out */
 static gint send_cmd_detail(PurpleConnection *gc, guint16 cmd, guint16 seq,
 	guint8 *data, gint data_len, gboolean is_save2trans,
-        guint32 update_class, guint32 ship32)
+        UPDCLS update_class, guint32 ship32)
 {
 	qq_data *qd;
 	guint8 *encrypted;
@@ -1161,7 +1167,7 @@
 }
 
 gint qq_send_cmd_mess(PurpleConnection *gc, guint16 cmd, guint8 *data, gint data_len,
-		guint32 update_class, guint32 ship32)
+		UPDCLS update_class, guint32 ship32)
 {
 	qq_data *qd;
 	guint16 seq;
@@ -1235,7 +1241,7 @@
 }
 
 static gint send_room_cmd(PurpleConnection *gc, guint8 room_cmd, guint32 room_id,
-		guint8 *data, gint data_len, guint32 update_class, guint32 ship32)
+		guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32)
 {
 	qq_data *qd;
 	guint8 *buf;
@@ -1289,7 +1295,7 @@
 }
 
 gint qq_send_room_cmd_mess(PurpleConnection *gc, guint8 room_cmd, guint32 room_id,
-		guint8 *data, gint data_len, guint32 update_class, guint32 ship32)
+		guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32)
 {
 	g_return_val_if_fail(room_cmd > 0, -1);
 	return send_room_cmd(gc, room_cmd, room_id, data, data_len, update_class, ship32);
--- a/libpurple/protocols/qq/qq_network.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_network.h	Sat Feb 12 23:54:14 2011 +0000
@@ -39,7 +39,7 @@
 		guint8 *encrypted_data, gint encrypted_len, gboolean is_save2trans);
 gint qq_send_cmd(PurpleConnection *gc, guint16 cmd, guint8 *data, gint datalen);
 gint qq_send_cmd_mess(PurpleConnection *gc, guint16 cmd, guint8 *data, gint data_len,
-		guint32 update_class, guint32 ship32);
+		UPDCLS update_class, guint32 ship32);
 
 gint qq_send_server_reply(PurpleConnection *gc, guint16 cmd, guint16 seq,
 		guint8 *data, gint data_len);
@@ -47,7 +47,7 @@
 gint qq_send_room_cmd(PurpleConnection *gc, guint8 room_cmd, guint32 room_id,
 		guint8 *data, gint data_len);
 gint qq_send_room_cmd_mess(PurpleConnection *gc, guint8 room_cmd, guint32 room_id,
-		guint8 *data, gint data_len, guint32 update_class, guint32 ship32);
+		guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32);
 gint qq_send_room_cmd_only(PurpleConnection *gc, guint8 room_cmd, guint32 room_id);
 gint qq_send_room_cmd_noid(PurpleConnection *gc, guint8 room_cmd,
 		guint8 *data, gint data_len);
--- a/libpurple/protocols/qq/qq_process.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_process.c	Sat Feb 12 23:54:14 2011 +0000
@@ -254,8 +254,8 @@
 	gint bytes;
 
 	struct {
-		guint32 uid_from;
-		guint32 uid_to;
+		UID uid_from;
+		UID uid_to;
 		guint32 seq;
 		struct in_addr ip_from;
 		guint16 port_from;
@@ -725,7 +725,7 @@
 
 void qq_proc_room_cmds(PurpleConnection *gc, guint16 seq,
 		guint8 room_cmd, guint32 room_id, guint8 *rcved, gint rcved_len,
-		guint32 update_class, guint32 ship32)
+		UPDCLS update_class, guint32 ship32)
 {
 	qq_data *qd;
 	guint8 *data;
@@ -861,7 +861,7 @@
 }
 
 guint8 qq_proc_login_cmds(PurpleConnection *gc,  guint16 cmd, guint16 seq,
-		guint8 *rcved, gint rcved_len, guint32 update_class, guint32 ship32)
+		guint8 *rcved, gint rcved_len, UPDCLS update_class, guint32 ship32)
 {
 	qq_data *qd;
 	guint8 *data = NULL;
@@ -1013,7 +1013,7 @@
 }
 
 void qq_proc_client_cmds(PurpleConnection *gc, guint16 cmd, guint16 seq,
-		guint8 *rcved, gint rcved_len, guint32 update_class, guint32 ship32)
+		guint8 *rcved, gint rcved_len, UPDCLS update_class, guint32 ship32)
 {
 	qq_data *qd;
 
--- a/libpurple/protocols/qq/qq_process.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_process.h	Sat Feb 12 23:54:14 2011 +0000
@@ -39,12 +39,12 @@
 };
 
 guint8 qq_proc_login_cmds(PurpleConnection *gc,  guint16 cmd, guint16 seq,
-		guint8 *rcved, gint rcved_len, guint32 update_class, guint32 ship32);
+		guint8 *rcved, gint rcved_len, UPDCLS update_class, guint32 ship32);
 void qq_proc_client_cmds(PurpleConnection *gc, guint16 cmd, guint16 seq,
-		guint8 *rcved, gint rcved_len, guint32 update_class, guint32 ship32);
+		guint8 *rcved, gint rcved_len, UPDCLS update_class, guint32 ship32);
 void qq_proc_room_cmds(PurpleConnection *gc, guint16 seq,
 		guint8 room_cmd, guint32 room_id, guint8 *rcved, gint rcved_len,
-		guint32 update_class, guint32 ship32);
+		UPDCLS update_class, guint32 ship32);
 
 void qq_proc_server_cmd(PurpleConnection *gc, guint16 cmd, guint16 seq, guint8 *rcved, gint rcved_len);
 
--- a/libpurple/protocols/qq/qq_trans.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_trans.c	Sat Feb 12 23:54:14 2011 +0000
@@ -42,25 +42,6 @@
 	QQ_TRANS_IS_REPLY = 0x08				/* server command before login*/
 };
 
-struct _qq_transaction {
-	guint8 flag;
-	guint16 seq;
-	guint16 cmd;
-
-	guint8 room_cmd;
-	guint32 room_id;
-
-	guint8 *data;
-	gint data_len;
-
-	gint fd;
-	gint send_retries;
-	gint rcved_times;
-	gint scan_times;
-
-	guint32 update_class;
-	guint32 ship32;
-};
 
 gboolean qq_trans_is_server(qq_transaction *trans)
 {
@@ -107,7 +88,7 @@
 }
 
 static qq_transaction *trans_create(PurpleConnection *gc, gint fd,
-	guint16 cmd, guint16 seq, guint8 *data, gint data_len, guint32 update_class, guint32 ship32)
+	guint16 cmd, guint16 seq, guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32)
 {
 	qq_transaction *trans;
 
@@ -178,7 +159,7 @@
 }
 
 void qq_trans_add_client_cmd(PurpleConnection *gc,
-	guint16 cmd, guint16 seq, guint8 *data, gint data_len, guint32 update_class, guint32 ship32)
+	guint16 cmd, guint16 seq, guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32)
 {
 	qq_data *qd = (qq_data *)gc->proto_data;
 	qq_transaction *trans = trans_create(gc, qd->fd, cmd, seq, data, data_len, update_class, ship32);
@@ -218,7 +199,7 @@
 
 void qq_trans_add_room_cmd(PurpleConnection *gc,
 		guint16 seq, guint8 room_cmd, guint32 room_id, guint8 *data, gint data_len,
-		guint32 update_class, guint32 ship32)
+		UPDCLS update_class, guint32 ship32)
 {
 	qq_data *qd = (qq_data *)gc->proto_data;
 	qq_transaction *trans = trans_create(gc, qd->fd, QQ_CMD_ROOM, seq, data, data_len,
--- a/libpurple/protocols/qq/qq_trans.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/qq_trans.h	Sat Feb 12 23:54:14 2011 +0000
@@ -28,7 +28,25 @@
 #include <glib.h>
 #include "qq.h"
 
-typedef struct _qq_transaction qq_transaction;
+typedef struct _qq_transaction {
+	guint8 flag;
+	guint16 seq;
+	guint16 cmd;
+
+	guint8 room_cmd;
+	guint32 room_id;
+
+	guint8 *data;
+	gint data_len;
+
+	gint fd;
+	gint send_retries;
+	gint rcved_times;
+	gint scan_times;
+
+	UPDCLS update_class;
+	guint32 ship32;
+} qq_transaction;
 
 qq_transaction *qq_trans_find_rcved(PurpleConnection *gc, guint16 cmd, guint16 seq);
 gboolean qq_trans_is_server(qq_transaction *trans) ;
@@ -39,10 +57,10 @@
 guint32 qq_trans_get_ship(qq_transaction *trans);
 
 void qq_trans_add_client_cmd(PurpleConnection *gc, guint16 cmd, guint16 seq,
-		guint8 *data, gint data_len, guint32 update_class, guint32 ship32);
+		guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32);
 void qq_trans_add_room_cmd(PurpleConnection *gc,
 		guint16 seq, guint8 room_cmd, guint32 room_id,
-		guint8 *data, gint data_len, guint32 update_class, guint32 ship32);
+		guint8 *data, gint data_len, UPDCLS update_class, guint32 ship32);
 void qq_trans_add_server_cmd(PurpleConnection *gc, guint16 cmd, guint16 seq,
 	guint8 *rcved, gint rcved_len);
 void qq_trans_add_server_reply(PurpleConnection *gc, guint16 cmd, guint16 seq,
--- a/libpurple/protocols/qq/send_file.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/send_file.c	Sat Feb 12 23:54:14 2011 +0000
@@ -278,7 +278,7 @@
 
 /* fill in the common information of file transfer */
 static gint _qq_create_packet_file_header
-(guint8 *raw_data, guint32 to_uid, guint16 message_type, qq_data *qd, gboolean seq_ack)
+(guint8 *raw_data, UID to_uid, guint16 message_type, qq_data *qd, gboolean seq_ack)
 {
 	gint bytes;
 	time_t now;
@@ -430,7 +430,7 @@
 }
 
 /* create the QQ_FILE_TRANS_REQ packet with file infomations */
-static void _qq_send_packet_file_request (PurpleConnection *gc, guint32 to_uid, gchar *filename, gint filesize)
+static void _qq_send_packet_file_request (PurpleConnection *gc, UID to_uid, gchar *filename, gint filesize)
 {
 	qq_data *qd;
 	guint8 *raw_data;
@@ -482,7 +482,7 @@
 }
 
 /* tell the buddy we want to accept the file */
-static void _qq_send_packet_file_accept(PurpleConnection *gc, guint32 to_uid)
+static void _qq_send_packet_file_accept(PurpleConnection *gc, UID to_uid)
 {
 	qq_data *qd;
 	guint8 *raw_data;
@@ -520,7 +520,7 @@
 			    packet_len, bytes);
 }
 
-static void _qq_send_packet_file_notifyip(PurpleConnection *gc, guint32 to_uid)
+static void _qq_send_packet_file_notifyip(PurpleConnection *gc, UID to_uid)
 {
 	PurpleXfer *xfer;
 	ft_info *info;
@@ -552,7 +552,7 @@
 }
 
 /* tell the buddy we don't want the file */
-static void _qq_send_packet_file_reject (PurpleConnection *gc, guint32 to_uid)
+static void _qq_send_packet_file_reject (PurpleConnection *gc, UID to_uid)
 {
 	qq_data *qd;
 	guint8 *raw_data;
@@ -576,7 +576,7 @@
 }
 
 /* tell the buddy to cancel transfer */
-static void _qq_send_packet_file_cancel (PurpleConnection *gc, guint32 to_uid)
+static void _qq_send_packet_file_cancel (PurpleConnection *gc, UID to_uid)
 {
 	qq_data *qd;
 	guint8 *raw_data;
@@ -611,7 +611,7 @@
 {
 	PurpleConnection *gc;
 	PurpleAccount *account;
-	guint32 to_uid;
+	UID to_uid;
 	const gchar *filename;
 	gchar *base_filename;
 
@@ -678,7 +678,7 @@
 
 /* process reject im for file transfer request */
 void qq_process_recv_file_reject (guint8 *data, gint data_len,
-		guint32 sender_uid, PurpleConnection *gc)
+		UID sender_uid, PurpleConnection *gc)
 {
 	gchar *msg, *filename;
 	qq_data *qd;
@@ -708,7 +708,7 @@
 
 /* process cancel im for file transfer request */
 void qq_process_recv_file_cancel (guint8 *data, gint data_len,
-		guint32 sender_uid, PurpleConnection *gc)
+		UID sender_uid, PurpleConnection *gc)
 {
 	gchar *msg, *filename;
 	qq_data *qd;
@@ -738,7 +738,7 @@
 }
 
 /* process accept im for file transfer request */
-void qq_process_recv_file_accept(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc)
+void qq_process_recv_file_accept(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc)
 {
 	qq_data *qd;
 	gint bytes;
@@ -764,7 +764,7 @@
 }
 
 /* process request from buddy's im for file transfer request */
-void qq_process_recv_file_request(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection * gc)
+void qq_process_recv_file_request(guint8 *data, gint data_len, UID sender_uid, PurpleConnection * gc)
 {
 	qq_data *qd;
 	PurpleXfer *xfer;
@@ -874,7 +874,7 @@
 }
 
 void qq_process_recv_file_notify(guint8 *data, gint data_len,
-		guint32 sender_uid, PurpleConnection *gc)
+		UID sender_uid, PurpleConnection *gc)
 {
 	gint bytes;
 	qq_data *qd;
--- a/libpurple/protocols/qq/send_file.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/send_file.h	Sat Feb 12 23:54:14 2011 +0000
@@ -29,7 +29,7 @@
 #include "qq.h"
 
 typedef struct _ft_info {
-	guint32 to_uid;
+	UID to_uid;
 	guint16 send_seq;
 	guint8 file_session_key[QQ_KEY_LENGTH];
 	guint8 conn_method;
@@ -67,11 +67,11 @@
 	gboolean use_major;
 } ft_info;
 
-void qq_process_recv_file_accept(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc);
-void qq_process_recv_file_reject(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc);
-void qq_process_recv_file_cancel(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc);
-void qq_process_recv_file_request(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc);
-void qq_process_recv_file_notify(guint8 *data, gint data_len, guint32 sender_uid, PurpleConnection *gc);
+void qq_process_recv_file_accept(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc);
+void qq_process_recv_file_reject(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc);
+void qq_process_recv_file_cancel(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc);
+void qq_process_recv_file_request(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc);
+void qq_process_recv_file_notify(guint8 *data, gint data_len, UID sender_uid, PurpleConnection *gc);
 gboolean qq_can_receive_file(PurpleConnection *gc, const char *who);
 void qq_send_file(PurpleConnection *gc, const char *who, const char *file);
 gint qq_get_conn_info(ft_info *info, guint8 *data);
--- a/libpurple/protocols/qq/utils.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/utils.c	Sat Feb 12 23:54:14 2011 +0000
@@ -131,9 +131,9 @@
 }
 
 /* convert Purple name to original QQ UID */
-guint32 purple_name_to_uid(const gchar *const name)
+UID purple_name_to_uid(const gchar *const name)
 {
-	guint32 ret;
+	UID ret;
 	g_return_val_if_fail(name != NULL, 0);
 
 	ret = strtoul(name, NULL, 10);
@@ -168,7 +168,7 @@
 
 /* convert a QQ UID to a unique name of Purple
  * the return needs to be freed */
-gchar *uid_to_purple_name(guint32 uid)
+gchar *uid_to_purple_name(UID uid)
 {
 	return g_strdup_printf("%u", uid);
 }
--- a/libpurple/protocols/qq/utils.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/qq/utils.h	Sat Feb 12 23:54:14 2011 +0000
@@ -27,6 +27,7 @@
 
 #include <stdio.h>
 #include <glib.h>
+#include "qq.h"
 
 #include "debug.h"
 
@@ -40,8 +41,8 @@
 gchar *gen_ip_str(guint8 *ip);
 guint8 *str_ip_gen(gchar *str);
 
-guint32 purple_name_to_uid(const gchar *name);
-gchar *uid_to_purple_name(guint32 uid);
+UID purple_name_to_uid(const gchar *name);
+gchar *uid_to_purple_name(UID uid);
 
 gchar *try_dump_as_gbk(const guint8 *const data, gint len);
 
--- a/libpurple/protocols/zephyr/Zinternal.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/zephyr/Zinternal.c	Sat Feb 12 23:54:14 2011 +0000
@@ -30,7 +30,6 @@
 #else
 #include <arpa/inet.h>
 #include <sys/socket.h>
-#include <utmp.h>
 #endif
 
 int __Zephyr_fd = -1;
--- a/libpurple/protocols/zephyr/zephyr.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/protocols/zephyr/zephyr.c	Sat Feb 12 23:54:14 2011 +0000
@@ -870,12 +870,12 @@
 			zephyr_triple *zt1, *zt2;
 			gchar *send_inst_utf8;
 			zephyr_account *zephyr = gc->proto_data;
-			zt1 = new_triple(gc->proto_data,notice.z_class, notice.z_class_inst, notice.z_recipient);
-			zt2 = find_sub_by_triple(gc->proto_data,zt1);
+			zt1 = new_triple(zephyr,notice.z_class, notice.z_class_inst, notice.z_recipient);
+			zt2 = find_sub_by_triple(zephyr,zt1);
 			if (!zt2) {
 				/* This is a server supplied subscription */
 				zephyr->subscrips = g_slist_append(zephyr->subscrips, new_triple(zephyr,zt1->class,zt1->instance,zt1->recipient));
-				zt2 = find_sub_by_triple(gc->proto_data,zt1);
+				zt2 = find_sub_by_triple(zephyr,zt1);
 			}
 
 			if (!zt2->open) {
@@ -1499,6 +1499,7 @@
 
 static void process_anyone(PurpleConnection *gc)
 {
+	zephyr_account *zephyr = purple_connection_get_protocol_data(gc);
 	FILE *fd;
 	gchar buff[BUFSIZ], *filename;
 	PurpleGroup *g;
@@ -1515,7 +1516,7 @@
 			strip_comments(buff);
 			if (buff[0]) {
 				if (!(b = purple_find_buddy(gc->account, buff))) {
-					char *stripped_user = zephyr_strip_local_realm(gc->proto_data,buff);
+					char *stripped_user = zephyr_strip_local_realm(zephyr,buff);
 					purple_debug_info("zephyr","stripped_user %s\n",stripped_user);
 					if (!(b = purple_find_buddy(gc->account,stripped_user))){
 						b = purple_buddy_new(gc->account, stripped_user, NULL);
@@ -1924,13 +1925,12 @@
 	fclose(fd);
 }
 
-static void write_anyone(PurpleConnection *gc)
+static void write_anyone(zephyr_account *zephyr)
 {
 	GSList *buddies;
 	char *fname;
 	FILE *fd;
 	PurpleAccount *account;
-	zephyr_account* zephyr = gc->proto_data;
 	fname = g_strdup_printf("%s/.anyone", purple_home_dir());
 	fd = g_fopen(fname, "w");
 	if (!fd) {
@@ -1938,7 +1938,7 @@
 		return;
 	}
 
-	account = purple_connection_get_account(gc);
+	account = zephyr->account;
 	for (buddies = purple_find_buddies(account, NULL); buddies;
 			buddies = g_slist_delete_link(buddies, buddies)) {
 		PurpleBuddy *b = buddies->data;
@@ -1966,10 +1966,10 @@
 	g_list_free(zephyr->pending_zloc_names);
 
 	if (purple_account_get_bool(gc->account, "write_anyone", FALSE))
-		write_anyone(gc);
+		write_anyone(zephyr);
 
 	if (purple_account_get_bool(gc->account, "write_zsubs", FALSE))
-		write_zsubs(gc->proto_data);
+		write_zsubs(zephyr);
 
 	s = zephyr->subscrips;
 	while (s) {
@@ -2032,7 +2032,7 @@
 	char *recipient;
 	zephyr_account *zephyr = gc->proto_data;
 
-	zt = find_sub_by_id(gc->proto_data,id);
+	zt = find_sub_by_id(zephyr,id);
 	if (!zt)
 		/* this should never happen. */
 		return -EINVAL;
@@ -2432,8 +2432,8 @@
 	if (!g_ascii_strcasecmp(recip, "%me%"))
 		recip = zephyr->username;
 
-	zt1 = new_triple(gc->proto_data,classname, instname, recip);
-	zt2 = find_sub_by_triple(gc->proto_data,zt1);
+	zt1 = new_triple(zephyr,classname, instname, recip);
+	zt2 = find_sub_by_triple(zephyr,zt1);
 	if (zt2) {
 		free_triple(zt1);
 		if (!zt2->open) {
@@ -2563,7 +2563,7 @@
 	zephyr_account* zephyr = gc->proto_data;
 	char *sender = (char *)zephyr->username;
 
-	zt = find_sub_by_id(gc->proto_data,id);
+	zt = find_sub_by_id(zephyr,id);
 	/* find_sub_by_id can return NULL */
 	if (!zt)
 		return;
--- a/libpurple/tests/Makefile.am	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/tests/Makefile.am	Sat Feb 12 23:54:14 2011 +0000
@@ -11,6 +11,7 @@
 	    tests.h \
 		test_cipher.c \
 		test_jabber_caps.c \
+		test_jabber_digest_md5.c \
 		test_jabber_jutil.c \
 		test_jabber_scram.c \
 		test_qq.c \
--- a/libpurple/tests/check_libpurple.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/tests/check_libpurple.c	Sat Feb 12 23:54:14 2011 +0000
@@ -85,6 +85,7 @@
 
 	srunner_add_suite(sr, cipher_suite());
 	srunner_add_suite(sr, jabber_caps_suite());
+	srunner_add_suite(sr, jabber_digest_md5_suite());
 	srunner_add_suite(sr, jabber_jutil_suite());
 	srunner_add_suite(sr, jabber_scram_suite());
 	srunner_add_suite(sr, qq_suite());
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/tests/test_jabber_digest_md5.c	Sat Feb 12 23:54:14 2011 +0000
@@ -0,0 +1,59 @@
+#include <string.h>
+
+#include "tests.h"
+#include "../util.h"
+#include "../protocols/jabber/auth_digest_md5.h"
+#include "../protocols/jabber/jutil.h"
+
+START_TEST(test_parsing)
+{
+	GHashTable *table;
+
+	table = jabber_auth_digest_md5_parse("r=\"realm\",token=   \"   asdf\"");
+	fail_if(g_hash_table_lookup(table, "r") == NULL);
+	assert_string_equal("realm", g_hash_table_lookup(table, "r"));
+	fail_if(g_hash_table_lookup(table, "token") == NULL);
+	assert_string_equal("asdf", g_hash_table_lookup(table, "token"));
+	g_hash_table_destroy(table);
+
+	table = jabber_auth_digest_md5_parse("r=\"a\", token=   \"   asdf\"");
+	fail_if(g_hash_table_lookup(table, "r") == NULL);
+	assert_string_equal("a", g_hash_table_lookup(table, "r"));
+	fail_if(g_hash_table_lookup(table, "token") == NULL);
+	assert_string_equal("asdf", g_hash_table_lookup(table, "token"));
+	g_hash_table_destroy(table);
+
+	table = jabber_auth_digest_md5_parse("r=\"\", token=   \"   asdf\"");
+	fail_if(g_hash_table_lookup(table, "r") == NULL);
+	assert_string_equal("", g_hash_table_lookup(table, "r"));
+	fail_if(g_hash_table_lookup(table, "token") == NULL);
+	assert_string_equal("asdf", g_hash_table_lookup(table, "token"));
+	g_hash_table_destroy(table);
+
+	table = jabber_auth_digest_md5_parse("realm=\"somerealm\",nonce=\"OA6MG9tEQGm2hh\",qop=\"auth\",charset=utf-8,algorithm=md5-sess");
+	fail_if(g_hash_table_lookup(table, "realm") == NULL);
+	assert_string_equal("somerealm", g_hash_table_lookup(table, "realm"));
+	fail_if(g_hash_table_lookup(table, "nonce") == NULL);
+	assert_string_equal("OA6MG9tEQGm2hh", g_hash_table_lookup(table, "nonce"));
+	fail_if(g_hash_table_lookup(table, "qop") == NULL);
+	assert_string_equal("auth", g_hash_table_lookup(table, "qop"));
+	fail_if(g_hash_table_lookup(table, "charset") == NULL);
+	assert_string_equal("utf-8", g_hash_table_lookup(table, "charset"));
+	fail_if(g_hash_table_lookup(table, "algorithm") == NULL);
+	assert_string_equal("md5-sess", g_hash_table_lookup(table, "algorithm"));
+
+	g_hash_table_destroy(table);
+
+}
+END_TEST
+
+Suite *
+jabber_digest_md5_suite(void)
+{
+	Suite *s = suite_create("Jabber SASL DIGEST-MD5 functions");
+
+	TCase *tc = tcase_create("Parsing Functionality");
+	tcase_add_test(tc, test_parsing);
+	suite_add_tcase(s, tc);
+	return s;
+}
--- a/libpurple/tests/tests.h	Sun Jan 09 23:32:10 2011 +0000
+++ b/libpurple/tests/tests.h	Sat Feb 12 23:54:14 2011 +0000
@@ -10,6 +10,7 @@
 Suite * master_suite(void);
 Suite * cipher_suite(void);
 Suite * jabber_caps_suite(void);
+Suite * jabber_digest_md5_suite(void);
 Suite * jabber_jutil_suite(void);
 Suite * jabber_scram_suite(void);
 Suite * qq_suite(void);
--- a/pidgin/gtkutils.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/pidgin/gtkutils.c	Sat Feb 12 23:54:14 2011 +0000
@@ -1394,6 +1394,7 @@
 
 static void dnd_image_ok_callback(_DndData *data, int choice)
 {
+	const gchar *shortname;
 	gchar *filedata;
 	size_t size;
 	struct stat st;
@@ -1448,7 +1449,9 @@
 
 			break;
 		}
-		id = purple_imgstore_add_with_id(filedata, size, data->filename);
+		shortname = strrchr(data->filename, G_DIR_SEPARATOR);
+		shortname = shortname ? shortname + 1 : data->filename;
+		id = purple_imgstore_add_with_id(filedata, size, shortname);
 
 		gtk_text_buffer_get_iter_at_mark(GTK_IMHTML(gtkconv->entry)->text_buffer, &iter,
 						 gtk_text_buffer_get_insert(GTK_IMHTML(gtkconv->entry)->text_buffer));
@@ -2854,7 +2857,7 @@
 	GtkComboBoxText *ret = NULL;
 	GtkWidget *the_entry = NULL;
 
-	ret = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new());
+	ret = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new_with_entry());
 	the_entry = gtk_entry_new();
 	gtk_container_add(GTK_CONTAINER(ret), the_entry);
 
--- a/pidgin/plugins/vvconfig.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/pidgin/plugins/vvconfig.c	Sat Feb 12 23:54:14 2011 +0000
@@ -82,20 +82,11 @@
 	GstPropertyProbe *probe;
 	const GParamSpec *pspec;
 
-	if (!strcmp(element_name, "<custom>")) {
-		ret = g_list_prepend(ret, NULL);
-		ret = g_list_prepend(ret, (gpointer)_("Default"));
-		ret = g_list_prepend(ret, "");
-		return ret;
-	}
-
 	ret = g_list_prepend(ret, (gpointer)_("Default"));
 	ret = g_list_prepend(ret, "");
 
-	if (*element_name == '\0') {
-		ret = g_list_prepend(ret, NULL);
-		ret = g_list_reverse(ret);
-		return ret;
+	if (!strcmp(element_name, "<custom>") || (*element_name == '\0')) {
+		return g_list_reverse(ret);
 	}
 
 	element = gst_element_factory_make(element_name, "test");
@@ -120,9 +111,7 @@
 		array = gst_property_probe_probe_and_get_values (probe, pspec);
 		if (array == NULL) {
 			purple_debug_info("vvconfig", "'%s' has no devices\n", element_name);
-			ret = g_list_prepend(ret, NULL);
-			ret = g_list_reverse(ret);
-			return ret;
+			return g_list_reverse(ret);
 		}
 
 		for (n=0; n < array->n_values; ++n) {
@@ -153,10 +142,7 @@
 	}
 	gst_object_unref(element);
 
-	ret = g_list_prepend(ret, NULL);
-	ret = g_list_reverse(ret);
-
-	return ret;
+	return g_list_reverse(ret);
 }
 
 static GList *
@@ -173,7 +159,6 @@
 			ret = g_list_prepend(ret, (gpointer)plugins[0]);
 		}
 	}
-	ret = g_list_prepend(ret, NULL);
 	ret = g_list_reverse(ret);
 	return ret;
 }
@@ -236,7 +221,8 @@
 	pref = g_strdup(name);
 	strcpy(pref + strlen(pref) - strlen("plugin"), "device");
 	devices = get_element_devices(value);
-	if (g_list_find(devices, purple_prefs_get_string(pref)) == NULL)
+	if (g_list_find_custom(devices, purple_prefs_get_string(pref),
+			(GCompareFunc)strcmp) == NULL)
 		purple_prefs_set_string(pref, g_list_next(devices)->data);
 	widget = pidgin_prefs_dropdown_from_list(parent,
 			label, PURPLE_PREF_STRING,
--- a/pidgin/win32/nsis/pidgin-installer.nsi	Sun Jan 09 23:32:10 2011 +0000
+++ b/pidgin/win32/nsis/pidgin-installer.nsi	Sat Feb 12 23:54:14 2011 +0000
@@ -530,6 +530,7 @@
     Push "xmpp"
     Call un.UnregisterURIHandler
 
+    Delete "$INSTDIR\ca-certs\AddTrust_External_Root.pem"
     Delete "$INSTDIR\ca-certs\America_Online_Root_Certification_Authority_1.pem"
     Delete "$INSTDIR\ca-certs\AOL_Member_CA.pem"
     Delete "$INSTDIR\ca-certs\CAcert_Class3.pem"
--- a/pidgin/win32/winpidgin.c	Sun Jan 09 23:32:10 2011 +0000
+++ b/pidgin/win32/winpidgin.c	Sat Feb 12 23:54:14 2011 +0000
@@ -632,11 +632,11 @@
 			} else {
 				if (strchr(__argv[i], 'd'))
 					debug = TRUE;
-				else if (strchr(__argv[i], 'h'))
+				if (strchr(__argv[i], 'h'))
 					help = TRUE;
-				else if (strchr(__argv[i], 'v'))
+				if (strchr(__argv[i], 'v'))
 					version = TRUE;
-				else if (strchr(__argv[i], 'm'))
+				if (strchr(__argv[i], 'm'))
 					multiple = TRUE;
 			}
 		}
--- a/po/ChangeLog	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/ChangeLog	Sat Feb 12 23:54:14 2011 +0000
@@ -1,6 +1,21 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
 version 2.7.10
+	* Bengali translation updated (Jamil Ahmed)
+	* Chinese (Hong Kong) translation updated (Ambrose C. Li, Paladin R.
+	  Liu)
+	* Chinese (Traditional) translation updated (Ambrose C. Li, Paladin R.
+	  Liu)
+	* Czech translation updated (David Vachulka)
+	* Dutch translation updated (Gideon van Melle)
+	* Hebrew translation updated (Shalom Craimer)
+	* Norwegian Nynorsk translation updated (Yngve Spjeld Landro)
+	* Occitan translation updated (Yannig Marchegay)
+	* Polish translation updated (Piotr Dr�g)
+	* Romanian translation updated (Mi�u Moldovan)
+	* Russian translation updated (�仆�仂仆 弌舒仄仂�于舒仍仂于)
+	* Spanish translation updated (Javier Fern叩ndez-Sanguino Pe単a)
+	* Ukrainian translation updated (Oleksandr Kovalenko)
 
 version 2.7.9
 	* Czech translation updated (David Vachulka)
--- a/po/POTFILES.in	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/POTFILES.in	Sat Feb 12 23:54:14 2011 +0000
@@ -124,8 +124,8 @@
 libpurple/protocols/mxit/filexfer.c
 libpurple/protocols/mxit/http.c
 libpurple/protocols/mxit/login.c
+libpurple/protocols/mxit/multimx.c
 libpurple/protocols/mxit/mxit.c
-libpurple/protocols/mxit/multimx.c
 libpurple/protocols/mxit/profile.c
 libpurple/protocols/mxit/protocol.c
 libpurple/protocols/mxit/roster.c
@@ -148,8 +148,8 @@
 libpurple/protocols/oscar/oft.c
 libpurple/protocols/oscar/oscar.c
 libpurple/protocols/oscar/peer.c
+libpurple/protocols/oscar/userinfo.c
 libpurple/protocols/oscar/util.c
-libpurple/protocols/oscar/userinfo.c
 libpurple/protocols/oscar/visibility.c
 libpurple/protocols/qq/buddy_info.c
 libpurple/protocols/qq/buddy_list.c
--- a/po/ar.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/ar.po	Sat Feb 12 23:54:14 2011 +0000
@@ -747,9 +747,9 @@
 #, c-format
 msgid "File Transfers - %d%% of %d file"
 msgid_plural "File Transfers - %d%% of %d files"
-msgstr[0] "��� 悋����悋惠 - %d%% �� %0.s惶�惘 ���悋惠"
-msgstr[1] "��� 悋����悋惠 - %d%% �� %0.s��� �悋忰惆"
-msgstr[2] "��� 悋����悋惠 - %d%% �� %0.s�����"
+msgstr[0] "��� 悋����悋惠 - %d%% �� 惶�惘 ���悋惠"
+msgstr[1] "��� 悋����悋惠 - %d%% �� ��� �悋忰惆"
+msgstr[2] "��� 悋����悋惠 - %d%% �� �����"
 msgstr[3] "��� 悋����悋惠 - %d%% �� %d ���悋惠"
 msgstr[4] "��� 悋����悋惠 - %d%% �� %d ���悋"
 msgstr[5] "��� 悋����悋惠 - %d%% �� %d ���"
@@ -921,9 +921,9 @@
 #, c-format
 msgid "%s (%s) has %d new message."
 msgid_plural "%s (%s) has %d new messages."
-msgstr[0] "�悋 惘愕悋悧�%0.s 悴惆�惆悸 �� ��%s (%s)."
-msgstr[1] "��%s (%s) �惆�� %0.s惘愕悋�悸 �悋忰惆悸 悴惆�惆悸"
-msgstr[2] "��%s (%s) �惆�� %0.s惘愕悋�惠悋� 悴惆�惆惠悋�."
+msgstr[0] "�悋 惘愕悋悧� 悴惆�惆悸 �� ��%s ��(%s)."
+msgstr[1] "��%s (%s) �惆�� 惘愕悋�悸 �悋忰惆悸 悴惆�惆悸"
+msgstr[2] "��%s (%s) �惆�� 惘愕悋�惠悋� 悴惆�惆惠悋�."
 msgstr[3] "��%s (%s) �惆�� %d 惘愕悋悧� 悴惆�惆悸."
 msgstr[4] "��%s (%s) �惆�� %d 惘愕悋�悸 悴惆�惆悸."
 msgstr[5] "��%s (%s) �惆�� %d 惘愕悋�悸 悴惆�惆悸."
@@ -11231,9 +11231,9 @@
 #, c-format
 msgid "%s, %d hour"
 msgid_plural "%s, %d hours"
-msgstr[0] "%s� %0.s�悋 愕悋惺悋惠"
-msgstr[1] "��%s� %0.s愕悋惺悸 �悋忰惆悸"
-msgstr[2] "��%s� %0.s愕悋惺惠��"
+msgstr[0] "%s� �悋 愕悋惺悋惠"
+msgstr[1] "��%s� 愕悋惺悸 �悋忰惆悸"
+msgstr[2] "��%s� 愕悋惺惠��"
 msgstr[3] "��%s� %d 愕悋惺悋惠"
 msgstr[4] "��%s� %d 愕悋惺悸"
 msgstr[5] "��%s� %d 愕悋惺悸"
@@ -11251,9 +11251,9 @@
 #, c-format
 msgid "%s, %d minute"
 msgid_plural "%s, %d minutes"
-msgstr[0] "��%s� %0.s�悋 惆�悋悧�"
-msgstr[1] "��%s� %0.s惆���悸 �悋忰惆悸"
-msgstr[2] "��%s� %0.s惆���惠��"
+msgstr[0] "��%s� �悋 惆�悋悧�"
+msgstr[1] "��%s� 惆���悸 �悋忰惆悸"
+msgstr[2] "��%s� 惆���惠��"
 msgstr[3] "%s� %d 惆�悋悧�"
 msgstr[4] "%s� %d 惆���悸"
 msgstr[5] "%s� %d 惆���悸"
@@ -11604,13 +11604,12 @@
 msgid "The text information for a buddy's status"
 msgstr "愃��惘 �惺���悋惠 悋��愕惠悽惆� �悖悴� %s"
 
-#, c-format
 msgid "You have %d contact named %s. Would you like to merge them?"
 msgid_plural ""
 "You currently have %d contacts named %s. Would you like to merge them?"
-msgstr[0] "�悋 �惘悋愕���%0.s �惆�� 惡悋愕� %s. 悖惠惘�惆 惆�悴���"
-msgstr[1] "�惆�� �惘悋愕� �悋忰惆%0.s 惡悋愕� %s. 悖惠惘�惆 惆�悴��"
-msgstr[2] "�惆�� �惘悋愕����%0.s 惡悋愕� %s. 悖惠惘�惆 惆�悴��悋�"
+msgstr[0] "%0.s�悋 �惘悋愕��� �惆�� 惡悋愕� %s. 悖惠惘�惆 惆�悴���"
+msgstr[1] "%0.s�惆�� �惘悋愕� �悋忰惆 惡悋愕� %s. 悖惠惘�惆 惆�悴��"
+msgstr[2] "%0.s�惆�� �惘悋愕���� 惡悋愕� %s. 悖惠惘�惆 惆�悴��悋�"
 msgstr[3] "�惆�� %d �惘悋愕��� 惡悋愕� %s. 悖惠惘�惆 惆�悴���"
 msgstr[4] "�惆�� %d �惘悋愕�悋 惡悋愕� %s. 悖惠惘�惆 惆�悴���"
 msgstr[5] "�惆�� %d �惘悋愕� 惡悋愕� %s. 悖惠惘�惆 惆�悴���"
@@ -11948,12 +11947,11 @@
 msgid "/Tools/Room List"
 msgstr "/悋�悖惆�悋惠/�悋悧�悸 悋�愃惘�"
 
-#, c-format
 msgid "%d unread message from %s\n"
 msgid_plural "%d unread messages from %s\n"
-msgstr[0] "�悋 惘愕悋悧�%0.s 愃�惘 ��惘�悄悸 �� %s\n"
-msgstr[1] "惘愕悋�悸 �悋忰惆悸%0.s 愃�惘 ��惘�悄悸 �� %s\n"
-msgstr[2] "惘愕悋�惠悋�%0.s 愃�惘 ��惘�悄惠悋� �� %s\n"
+msgstr[0] "%0.s�悋 惘愕悋悧� 愃�惘 ��惘�悄悸 �� %s\n"
+msgstr[1] "%0.s惘愕悋�悸 �悋忰惆悸 愃�惘 ��惘�悄悸 �� %s\n"
+msgstr[2] "%0.s惘愕悋�惠悋� 愃�惘 ��惘�悄惠悋� �� %s\n"
 msgstr[3] "%d 惘愕悋悧� 愃�惘 ��惘�悄悸 �� %s\n"
 msgstr[4] "%d 惘愕悋�悸 愃�惘 ��惘�悄悸 �� %s\n"
 msgstr[5] "%d 惘愕悋�悸 愃�惘 ��惘�悄悸 �� %s\n"
@@ -12932,13 +12930,13 @@
 "You are about to remove the contact containing %s and %d other buddies from "
 "your buddy list.  Do you want to continue?"
 msgstr[0] ""
-"悖�惠 惡惶惆惆 悒慍悋�悸 �惘悋愕� �忰惠�� %s � %0.s�悋 悖惶惆�悋悄 �� �悋悧�悸 悖惶惆�悋悧�.  �� 惠惘�惆 "
+"悖�惠 惡惶惆惆 悒慍悋�悸 �惘悋愕� �忰惠�� %s ��悋 悖惶惆�悋悄 �� �悋悧�悸 悖惶惆�悋悧�.  �� 惠惘�惆 "
 "悋�悋愕惠�惘悋惘�"
 msgstr[1] ""
-"悖�惠 惡惶惆惆 悒慍悋�悸 �惘悋愕� �忰惠�� %s � %0.s惶惆�� 悛悽惘 �� �悋悧�悸 悖惶惆�悋悧�.  �� 惠惘�惆 "
+"悖�惠 惡惶惆惆 悒慍悋�悸 �惘悋愕� �忰惠�� %s �惶惆�� 悛悽惘 �� �悋悧�悸 悖惶惆�悋悧�.  �� 惠惘�惆 "
 "悋�悋愕惠�惘悋惘�"
 msgstr[2] ""
-"悖�惠 惡惶惆惆 悒慍悋�悸 �惘悋愕� �忰惠�� %s � %0.s惶惆���� 悛悽惘�� �� �悋悧�悸 悖惶惆�悋悧�.  �� 惠惘�惆 "
+"悖�惠 惡惶惆惆 悒慍悋�悸 �惘悋愕� �忰惠�� %s �惶惆���� 悛悽惘�� �� �悋悧�悸 悖惶惆�悋悧�.  �� 惠惘�惆 "
 "悋�悋愕惠�惘悋惘�"
 msgstr[3] ""
 "悖�惠 惡惶惆惆 悒慍悋�悸 �惘悋愕� �忰惠�� %s � %d 悖惶惆�悋悄 悛悽惘�� �� �悋悧�悸 悖惶惆�悋悧�.  �� 惠惘�惆 "
@@ -13504,12 +13502,12 @@
 #, c-format
 msgid "%s has %d new message."
 msgid_plural "%s has %d new messages."
-msgstr[0] "�悋 惘愕悋悧�%0.s 悴惆�惆悸 � %s."
-msgstr[1] "惘愕悋�悸%0.s 悴惆�惆悸 � %s."
-msgstr[2] "惘愕悋�惠悋�%0.s 悴惆�惆惠悋� � %s."
-msgstr[3] "%Id 惘愕悋悧� 悴惆�惆悸 � %s."
-msgstr[4] "%Id 惘愕悋�悸 悴惆�惆悸 � %s."
-msgstr[5] "%Id 惘愕悋�悸 悴惆�惆悸 � %s."
+msgstr[0] "�悋 惘愕悋悧� 悴惆�惆悸 ��� %s."
+msgstr[1] "惘愕悋�悸 悴惆�惆悸 ��� %s."
+msgstr[2] "惘愕悋�惠悋� 悴惆�惆惠悋� ��� %s."
+msgstr[3] "%2$d 惘愕悋悧� 悴惆�惆悸 ��� %1$s."
+msgstr[4] "%2$d 惘愕悋�悸 悴惆�惆悸 ��� %1$s."
+msgstr[5] "%2$d 惘愕悋�悸 悴惆�惆悸 ��� %1$s."
 
 #, c-format
 msgid "<b>%d new email.</b>"
--- a/po/az.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/az.po	Sat Feb 12 23:54:14 2011 +0000
@@ -15,7 +15,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: KBabel 1.3\n"
 
 #. Translators may want to transliterate the name.
--- a/po/bn.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/bn.po	Sat Feb 12 23:54:14 2011 +0000
@@ -13,7 +13,7 @@
 msgstr ""
 "Project-Id-Version: bn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 20:34-0500\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
 "PO-Revision-Date: 2010-12-19 13:37+0600\n"
 "Last-Translator: israt <israt@ankur.org.bd>\n"
 "Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\n"
@@ -2466,8 +2466,12 @@
 "爨��爨�爨� 爨伍�爨萎�爭�爨劇Γ爭�爨� ����爨��爨�\n"
 "(爨�爨��爨�爭�爨萎� 爨�爨萎� 爨伍Ξ爭�爨��爨萎�爨� 爨��爨� 爨��爨萎Ζ爨鉦Θ 爨�爨萎�爨�)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "爨�Θ爭�爨о� 爨む�爨迦�爨�爨鉦Π 爨��爨逗Π爭�爨〝�爨� 爨��爨�Μ爨項�爨萎�爨鉦Π爭� 爨ム�爨�爭� 爨伍�爨�Ο爨酌�爨�爭�爨萎�爨�� 爨〝�爨�� 爨��爨む�爨� 爨�爨萎� 爨項Μ爭�"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"爨��爨� 爨踶�爨�爨� 爨��爨�Μ爨項�爨萎�爨鉦Π爭� 爨ム�爨�爭� 爨��爨�爨� 爨伍�爨ム�爨��爨��爨むΠ爭�爨� 爨�爨��爨萎�爨� 爨�爨伍�\n"
+" 爨�� 爨�爨�Θ爨鉦Π 爨�Θ爭�爨о� 爨む�爨迦�爨�爨鉦� *爨��爨�*:"
 
 # tithi
 msgid ""
@@ -2480,6 +2484,10 @@
 msgid "Create a new directory for each user"
 msgstr "爨��爨萎Δ爭�爨��爨� 爨��爨�Μ爨項�爨萎�爨鉦Π爭�爨� 爨�爨��爨� 爨踶�爨�爨� 爨�Δ爭�爨� 爨÷�爨萎�爨�爭�爨�爨萎� 爨む�爨萎� 爨�爨萎� 爨項Μ爭�"
 
+# Translated by sadia
+msgid "Escape the filenames"
+msgstr "爨��爨�爨迦Θ爨鉦Ξ 爨踷�爨逗�爭� 爨��爨�爭�爨�"
+
 msgid "Notes"
 msgstr "爨��爨�"
 
@@ -3993,7 +4001,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr "爨踶�爨�爨� 爨踶��爭�爨萎�爨�Χ爨�Μ爨逗�爭�爨� 爨伍�爨�爭�爨萎�爨�� 爨伍�爨萎�爨〝�爨萎�爨� 爨伍Π爨�-爨�爭�爨�爭�爨伍� 爨��爨萎Ξ爨鉦Γ爭�爨�爨萎Γ 爨��爨萎Ο爨酌�爨�爨�"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "爨伍�爨萎�爨〝�爨� 爨ム�爨�爭� 爨�爨�爨鉦Π爭�爨��爨� 爨�爨む�爨むΠ"
 
@@ -6605,6 +6616,22 @@
 msgid "Retrieving User Information..."
 msgstr "爨��爨�Μ爨項�爨萎�爨鉦Π爭�爨� 爨むΕ爭�爨� 爨�爭�爨�爨�爭� 爨�爨�� 爨項�爭�爨�爭�..."
 
+# Kick =  爨む�爨萎Ω爭�爨�爨鉦Π
+# OR  爨�Ζ爨鉦�爨鉦Δ
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "MultiMX 爨項Δ爭� 爨�爨�Θ爨鉦�爭� 爨む�爨萎Ω爭�爨�爨鉦Π 爨�爨萎� 爨項�爭�爨�爭�爛�"
+
+msgid "was kicked"
+msgstr "爨む�爨萎Ω爭�爨�爨鉦Π 爨�爨萎� 爨項�爭�爨�爭�"
+
+msgid "_Room Name:"
+msgstr "爨�爨伍Π爭�爨� 爨��爨� (_R):"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "爨�爨�Θ爨鉦�爭� 爨�爨�Θ爭�爨む�爨萎Γ 爨�爨鉦Θ爨鉦Θ爭� 爨項�爭�爨�爭�"
+
 # Translated by sadia
 msgid "Loading menu..."
 msgstr "爨��爨�� 爨迦�爨� 爨�爨萎� 爨項�爭�爨�爭�..."
@@ -6640,22 +6667,6 @@
 msgid "Enable splash-screen popup"
 msgstr "爨伍�爨��爨迦�爨��爨� 爨伍�爨�爭�爨萎�爨� 爨�Κ 爨�爨� 爨伍�爭�爨萎�爭� 爨�爨萎� 爨項Μ爭�"
 
-# Kick =  爨む�爨萎Ω爭�爨�爨鉦Π
-# OR  爨�Ζ爨鉦�爨鉦Δ
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "MultiMX 爨項Δ爭� 爨�爨�Θ爨鉦�爭� 爨む�爨萎Ω爭�爨�爨鉦Π 爨�爨萎� 爨項�爭�爨�爭�爛�"
-
-msgid "was kicked"
-msgstr "爨む�爨萎Ω爭�爨�爨鉦Π 爨�爨萎� 爨項�爭�爨�爭�"
-
-msgid "_Room Name:"
-msgstr "爨�爨伍Π爭�爨� 爨��爨� (_R):"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "爨�爨�Θ爨鉦�爭� 爨�爨�Θ爭�爨む�爨萎Γ 爨�爨鉦Θ爨鉦Θ爭� 爨項�爭�爨�爭�"
-
 msgid "Last Online"
 msgstr "爨謹�爨� 爨��爨� 爨�爨�Σ爨鉦�爨��"
 
@@ -8546,91 +8557,6 @@
 "爨踶�爨逗Π 爨�爨��爨� 爨��爨�爨� 爨�爨��爨��爨�爨�爨鉦Π爭�爨� 爨�Η爭�爨�� 爨伍Π爨鉦Ω爨萎� 爨伍�爨��爨� 爨��爨萎Ο爨酌�爨�爨� 爨�� 爨�爨逗Θ爨� IM 爨踶� 爨�爨��爨� 爨�爨��爨� "
 "爨�爨�Χ爭�爨��爛� 爨��爨項�爨む� 爨�爨�Θ爨鉦Π IP 爨�爨逗�爨鉦Θ爨� 爨��爨萎�爨鉦Χ爨逗Δ 爨項Μ爭�, 爨む�爨� 爨踶む� 爨�爭�爨�Θ爭�爭�爨む�爭� 爨�爭�爨�爨�爨� 爨ム�爨�爨む� 爨��爨萎�爛�"
 
-msgid "Invalid SNAC"
-msgstr "爨�爨�爨鉦Π爭�爨��爨� SNAC"
-
-msgid "Server rate limit exceeded"
-msgstr "爨伍�爨萎�爨〝�爨� 爨項�爨萎�爨� 爨伍�爨�� 爨��爨萎�爭�爭� 爨�爭�爨�爭�"
-
-msgid "Client rate limit exceeded"
-msgstr "爨�爭�爨迦�爭�爭�爨��爨� 爨項�爨萎�爨� 爨伍�爨�� 爨��爨萎�爭�爭� 爨�爭�爨�爭�"
-
-msgid "Service unavailable"
-msgstr "爨伍�爨萎�爨〝�爨� 爨��爨��爨�Ξ爨鉦Θ 爨��"
-
-# tithi
-msgid "Service not defined"
-msgstr "爨伍�爨�� 爨��爨萎�爨о�爨萎�爨� 爨��"
-
-# tithi
-msgid "Obsolete SNAC"
-msgstr "爨�爨��爨萎�爨迦�爨� SNAC"
-
-# tithi
-msgid "Not supported by host"
-msgstr "爨項�爨伍�爨� 爨��爨��爨萎� 爨伍Ξ爨萎�爨ム�爨� 爨�Ο爨�"
-
-# tithi
-msgid "Not supported by client"
-msgstr "爨�爭�爨迦�爭�爭�爨��爨� 爨��爨��爨萎� 爨伍Ξ爨萎�爨ム�爨� 爨�Ο爨�"
-
-# tithi
-msgid "Refused by client"
-msgstr "爨�爭�爨迦�爭�爭�爨��爨� 爨��爨��爨萎� 爨��爨萎Δ爭�爨��爨�爭�爨��爨�"
-
-# tithi
-msgid "Reply too big"
-msgstr "爨�爨む�爨萎�爨�爭�爨� 爨�Α爨� 爨�爨む�爨むΠ"
-
-# tithi
-msgid "Responses lost"
-msgstr "爨��爨萎Δ爨逗�爭�爨萎�爭�爨� 爨項�爨萎�爨��爭� 爨�爭�爨�爭�"
-
-msgid "Request denied"
-msgstr "爨�爨��爨萎�爨� 爨��爨萎Δ爭�爨��爨�爭�爨��爨�"
-
-# tithi
-msgid "Busted SNAC payload"
-msgstr "爨��爨�Π爭�爨� SNAC 爨��爨迦�爨�"
-
-# tithi
-msgid "Insufficient rights"
-msgstr "爨�爨�Π爭�爨��爨��爨� 爨�爨о�爨�爨鉦Π"
-
-# tithi
-msgid "In local permit/deny"
-msgstr "爨伍�爨ム�爨��爨�� 爨�爨��爨�Δ爨�/爨�爨伍�爨��爨�爨鉦Π爭�"
-
-# tithi
-msgid "Warning level too high (sender)"
-msgstr "爨伍Δ爨萎�爨�爨む� 爨伍�爨むΠ 爨�爭�爨� 爨�爨�爭�爨� (爨��爨萎�爨萎�)"
-
-# tithi
-msgid "Warning level too high (receiver)"
-msgstr "爨伍Δ爨萎�爨�爨む� 爨伍�爨むΠ 爨�爭�爨� 爨�爨�爭�爨� (爨�爭�爨萎�爨項�)"
-
-# tithi
-msgid "User temporarily unavailable"
-msgstr "爨��爨�Μ爨項�爨萎�爨鉦Π爭�爨�爭� 爨伍�爨�Ο爨酌�爨�爨〝�爨�� 爨��爨�爭�爨� 爨��爭�爨��"
-
-# tithi
-msgid "No match"
-msgstr "爨�爭�爨�� 爨��爨� 爨��爨�"
-
-# tithi
-msgid "List overflow"
-msgstr "爨迦�爨伍�爨� 爨�爨〝�爨謂��爨��爨迦�"
-
-msgid "Request ambiguous"
-msgstr "爨�爨��爨萎�爨� 爨�爨伍�爨�Ψ爭�爨�"
-
-# tithi
-msgid "Queue full"
-msgstr "爨�爨逗� 爨�Π爨逗Κ爭�爨萎�爨�"
-
-msgid "Not while on AOL"
-msgstr "AOL 爨� 爨ム�爨�爨� 爨�爨�Ω爭�爨ム�爭� 爨��"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "爨�Θ爭�爨о� 爨�爨�爨�爨�"
@@ -8767,6 +8693,91 @@
 msgid "Capabilities"
 msgstr "爨�爭�爨劇Ξ爨む�"
 
+msgid "Invalid SNAC"
+msgstr "爨�爨�爨鉦Π爭�爨��爨� SNAC"
+
+msgid "Server rate limit exceeded"
+msgstr "爨伍�爨萎�爨〝�爨� 爨項�爨萎�爨� 爨伍�爨�� 爨��爨萎�爭�爭� 爨�爭�爨�爭�"
+
+msgid "Client rate limit exceeded"
+msgstr "爨�爭�爨迦�爭�爭�爨��爨� 爨項�爨萎�爨� 爨伍�爨�� 爨��爨萎�爭�爭� 爨�爭�爨�爭�"
+
+msgid "Service unavailable"
+msgstr "爨伍�爨萎�爨〝�爨� 爨��爨��爨�Ξ爨鉦Θ 爨��"
+
+# tithi
+msgid "Service not defined"
+msgstr "爨伍�爨�� 爨��爨萎�爨о�爨萎�爨� 爨��"
+
+# tithi
+msgid "Obsolete SNAC"
+msgstr "爨�爨��爨萎�爨迦�爨� SNAC"
+
+# tithi
+msgid "Not supported by host"
+msgstr "爨項�爨伍�爨� 爨��爨��爨萎� 爨伍Ξ爨萎�爨ム�爨� 爨�Ο爨�"
+
+# tithi
+msgid "Not supported by client"
+msgstr "爨�爭�爨迦�爭�爭�爨��爨� 爨��爨��爨萎� 爨伍Ξ爨萎�爨ム�爨� 爨�Ο爨�"
+
+# tithi
+msgid "Refused by client"
+msgstr "爨�爭�爨迦�爭�爭�爨��爨� 爨��爨��爨萎� 爨��爨萎Δ爭�爨��爨�爭�爨��爨�"
+
+# tithi
+msgid "Reply too big"
+msgstr "爨�爨む�爨萎�爨�爭�爨� 爨�Α爨� 爨�爨む�爨むΠ"
+
+# tithi
+msgid "Responses lost"
+msgstr "爨��爨萎Δ爨逗�爭�爨萎�爭�爨� 爨項�爨萎�爨��爭� 爨�爭�爨�爭�"
+
+msgid "Request denied"
+msgstr "爨�爨��爨萎�爨� 爨��爨萎Δ爭�爨��爨�爭�爨��爨�"
+
+# tithi
+msgid "Busted SNAC payload"
+msgstr "爨��爨�Π爭�爨� SNAC 爨��爨迦�爨�"
+
+# tithi
+msgid "Insufficient rights"
+msgstr "爨�爨�Π爭�爨��爨��爨� 爨�爨о�爨�爨鉦Π"
+
+# tithi
+msgid "In local permit/deny"
+msgstr "爨伍�爨ム�爨��爨�� 爨�爨��爨�Δ爨�/爨�爨伍�爨��爨�爨鉦Π爭�"
+
+# tithi
+msgid "Warning level too high (sender)"
+msgstr "爨伍Δ爨萎�爨�爨む� 爨伍�爨むΠ 爨�爭�爨� 爨�爨�爭�爨� (爨��爨萎�爨萎�)"
+
+# tithi
+msgid "Warning level too high (receiver)"
+msgstr "爨伍Δ爨萎�爨�爨む� 爨伍�爨むΠ 爨�爭�爨� 爨�爨�爭�爨� (爨�爭�爨萎�爨項�)"
+
+# tithi
+msgid "User temporarily unavailable"
+msgstr "爨��爨�Μ爨項�爨萎�爨鉦Π爭�爨�爭� 爨伍�爨�Ο爨酌�爨�爨〝�爨�� 爨��爨�爭�爨� 爨��爭�爨��"
+
+# tithi
+msgid "No match"
+msgstr "爨�爭�爨�� 爨��爨� 爨��爨�"
+
+# tithi
+msgid "List overflow"
+msgstr "爨迦�爨伍�爨� 爨�爨〝�爨謂��爨��爨迦�"
+
+msgid "Request ambiguous"
+msgstr "爨�爨��爨萎�爨� 爨�爨伍�爨�Ψ爭�爨�"
+
+# tithi
+msgid "Queue full"
+msgstr "爨�爨逗� 爨�Π爨逗Κ爭�爨萎�爨�"
+
+msgid "Not while on AOL"
+msgstr "AOL 爨� 爨ム�爨�爨� 爨�爨�Ω爭�爨ム�爭� 爨��"
+
 # tithi
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
@@ -9420,16 +9431,16 @@
 msgstr "爨伍�爨萎�爨〝�爨� 爨��爨萎�爨��爨�爨�"
 
 # tithi
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 # tithi
 msgid "QQ2007"
 msgstr "QQ2007"
 
 # tithi
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "TCP 爨��爨��爨萎� 爨伍�爨��爨� 爨�爨萎� 爨項Μ爭�"
@@ -13272,10 +13283,6 @@
 msgid "Fatal Error"
 msgstr "爨��爨萎�爨む�爨�� 爨む�爨萎�爨�爨�"
 
-# tithi
-msgid "bug master"
-msgstr "爨��爨� 爨��爨伍�爨�爨鉦Π"
-
 msgid "artist"
 msgstr "爨謹�爨迦�爨��"
 
@@ -13472,6 +13479,9 @@
 msgid "Maithili"
 msgstr "爨��爨ム�爨迦�"
 
+msgid "Meadow Mari"
+msgstr "爨��爨�爨÷� 爨��爨萎�"
+
 msgid "Macedonian"
 msgstr "爨��爨��爨伍�爨÷Θ爨逗Ο爨�"
 
@@ -16808,6 +16818,13 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "爨�爨�Θ爨鉦Π 爨踶� 爨�爭�爨��爨��爨迦�爨�爭�爨謹Θ爨�爨� 爨�爨��爨��爨伍�爨� 爨�爨萎�爨� 爨�爨��爨�Δ爨� 爨��爨�爛�"
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr "爨�Θ爭�爨о� 爨む�爨迦�爨�爨鉦Π 爨��爨逗Π爭�爨〝�爨� 爨��爨�Μ爨項�爨萎�爨鉦Π爭� 爨ム�爨�爭� 爨伍�爨�Ο爨酌�爨�爭�爨萎�爨�� 爨〝�爨�� 爨��爨む�爨� 爨�爨萎� 爨項Μ爭�"
+
+# tithi
+#~ msgid "bug master"
+#~ msgstr "爨��爨� 爨��爨伍�爨�爨鉦Π"
+
 #~ msgid "An error occurred on the in-band bytestream transfer\n"
 #~ msgstr "爨�爨�-爨��爨��爨��爨� 爨��爨�爨�爨伍�爨�爭�爨萎�爨� 爨��爨��爨��爭� 爨む�爨萎�爨�爨� 爨項�爭�爨�爭�\n"
 
--- a/po/ca.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/ca.po	Sat Feb 12 23:54:14 2011 +0000
@@ -3,7 +3,7 @@
 # Copyright (C) unknown, Robert Millan <zeratul2@wanadoo.es>
 # Copyright (C) December 2003 (from 2003-12-12 until 2003-12-18),
 #               January (2004-01-07,12), Xan <dxpublica@telefonica.net>
-# Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010
+# Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 #               Josep Puigdemont i Casamaj坦 <josep.puigdemont@gmail.com>
 #
 # This file is distributed under the same license as the Pidgin package.
@@ -33,8 +33,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-23 07:57+0100\n"
-"PO-Revision-Date: 2010-12-23 08:04+0100\n"
+"POT-Creation-Date: 2011-01-30 11:04+0100\n"
+"PO-Revision-Date: 2011-01-30 11:11+0100\n"
 "Last-Translator: Josep Puigdemont i Casamaj坦 <josep.puigdemont@gmail.com>\n"
 "Language-Team: Catalan <tradgnome@softcatala.net>\n"
 "Language: ca\n"
@@ -2387,9 +2387,12 @@
 "Cam鱈 on desar els fitxers\n"
 "(introdu誰u tot el cam鱈)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr ""
-"Rebutja autom�ticament dels usuaris que no estiguin a la llista d'amics"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"Quan arribi una sol揃licitud de transfer竪ncia d'un fitxer d'un\n"
+"usuari que *no* 辿s a la vostra llista d'amics:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2402,6 +2405,10 @@
 msgid "Create a new directory for each user"
 msgstr "Crea un directori nou per a cada usuari"
 
+#, fuzzy
+msgid "Escape the filenames"
+msgstr "%s ha cancel揃lat la transfer竪ncia del fitxer"
+
 msgid "Notes"
 msgstr "Notes"
 
@@ -3859,7 +3866,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr "El servidor requereix autenticaci坦 de text sobre un flux no xifrat"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "La resposta del servidor no 辿s v�lida"
 
@@ -6201,6 +6211,20 @@
 msgid "Retrieving User Information..."
 msgstr "S'est� obtenint informaci坦 de l'usuari..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "Us han fet fora d'aquest MultiMX."
+
+msgid "was kicked"
+msgstr "ha estat fet fora"
+
+msgid "_Room Name:"
+msgstr "Nom de la _Sala:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "Heu convidat"
+
 msgid "Loading menu..."
 msgstr "S'est� carregant el men炭..."
 
@@ -6229,20 +6253,6 @@
 msgid "Enable splash-screen popup"
 msgstr "Habilita la pantalla de presentaci坦 emergent"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "Us han fet fora d'aquest MultiMX."
-
-msgid "was kicked"
-msgstr "ha estat fet fora"
-
-msgid "_Room Name:"
-msgstr "Nom de la _Sala:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "Heu convidat"
-
 msgid "Last Online"
 msgstr "Darrer cop en l鱈nia"
 
@@ -7917,75 +7927,6 @@
 "necessari per poder enviar imatges instant�nies. At竪s que es revelar� la "
 "vostra adre巽a IP, aix嘆 es pot considerar un risc de privadesa."
 
-msgid "Invalid SNAC"
-msgstr "SNAC inv�lid"
-
-msgid "Server rate limit exceeded"
-msgstr "S'ha excedit el l鱈mit de velocitat del servidor"
-
-msgid "Client rate limit exceeded"
-msgstr "S'ha excedit el l鱈mit de velocitat del client"
-
-msgid "Service unavailable"
-msgstr "Servei no disponible"
-
-msgid "Service not defined"
-msgstr "Servei no definit"
-
-msgid "Obsolete SNAC"
-msgstr "SNAC obsolet"
-
-msgid "Not supported by host"
-msgstr "El servidor no ho permet"
-
-msgid "Not supported by client"
-msgstr "El client no ho permet"
-
-msgid "Refused by client"
-msgstr "Rebutjat pel client"
-
-msgid "Reply too big"
-msgstr "Resposta massa gran"
-
-msgid "Responses lost"
-msgstr "S'han perdut respostes"
-
-msgid "Request denied"
-msgstr "Petici坦 denegada"
-
-msgid "Busted SNAC payload"
-msgstr "C�rrega SNAC malmesa"
-
-msgid "Insufficient rights"
-msgstr "Drets insuficients"
-
-msgid "In local permit/deny"
-msgstr "En la llista de perm竪s/denegat local"
-
-msgid "Warning level too high (sender)"
-msgstr "Nivell d'av鱈s massa alt (remitent)"
-
-msgid "Warning level too high (receiver)"
-msgstr "Nivell d'av鱈s massa alt (receptor)"
-
-msgid "User temporarily unavailable"
-msgstr "Usuari no disponible temporalment"
-
-msgid "No match"
-msgstr "Cap coincid竪ncia"
-
-msgid "List overflow"
-msgstr "Sobreeiximent de la llista"
-
-msgid "Request ambiguous"
-msgstr "Petici坦 ambigua"
-
-msgid "Queue full"
-msgstr "Cua plena"
-
-msgid "Not while on AOL"
-msgstr "No es pot fer mentre estigui a AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "Icona de l'amic"
@@ -8104,6 +8045,75 @@
 msgid "Capabilities"
 msgstr "Capacitats"
 
+msgid "Invalid SNAC"
+msgstr "SNAC inv�lid"
+
+msgid "Server rate limit exceeded"
+msgstr "S'ha excedit el l鱈mit de velocitat del servidor"
+
+msgid "Client rate limit exceeded"
+msgstr "S'ha excedit el l鱈mit de velocitat del client"
+
+msgid "Service unavailable"
+msgstr "Servei no disponible"
+
+msgid "Service not defined"
+msgstr "Servei no definit"
+
+msgid "Obsolete SNAC"
+msgstr "SNAC obsolet"
+
+msgid "Not supported by host"
+msgstr "El servidor no ho permet"
+
+msgid "Not supported by client"
+msgstr "El client no ho permet"
+
+msgid "Refused by client"
+msgstr "Rebutjat pel client"
+
+msgid "Reply too big"
+msgstr "Resposta massa gran"
+
+msgid "Responses lost"
+msgstr "S'han perdut respostes"
+
+msgid "Request denied"
+msgstr "Petici坦 denegada"
+
+msgid "Busted SNAC payload"
+msgstr "C�rrega SNAC malmesa"
+
+msgid "Insufficient rights"
+msgstr "Drets insuficients"
+
+msgid "In local permit/deny"
+msgstr "En la llista de perm竪s/denegat local"
+
+msgid "Warning level too high (sender)"
+msgstr "Nivell d'av鱈s massa alt (remitent)"
+
+msgid "Warning level too high (receiver)"
+msgstr "Nivell d'av鱈s massa alt (receptor)"
+
+msgid "User temporarily unavailable"
+msgstr "Usuari no disponible temporalment"
+
+msgid "No match"
+msgstr "Cap coincid竪ncia"
+
+msgid "List overflow"
+msgstr "Sobreeiximent de la llista"
+
+msgid "Request ambiguous"
+msgstr "Petici坦 ambigua"
+
+msgid "Queue full"
+msgstr "Cua plena"
+
+msgid "Not while on AOL"
+msgstr "No es pot fer mentre estigui a AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8703,14 +8713,14 @@
 msgid "Select Server"
 msgstr "Seleccioneu un servidor"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "Connecta amb TCP"
@@ -12284,10 +12294,6 @@
 msgid "Fatal Error"
 msgstr "Error fatal"
 
-# Fixme
-msgid "bug master"
-msgstr "bug master"
-
 msgid "artist"
 msgstr "artista"
 
@@ -12469,6 +12475,9 @@
 msgid "Maithili"
 msgstr "Maithili"
 
+msgid "Meadow Mari"
+msgstr "Txerem鱈s oriental"
+
 msgid "Macedonian"
 msgstr "Macedoni"
 
@@ -15626,6 +15635,14 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "No tens perm鱈s per desinstal.lar aquesta aplicaci坦."
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr ""
+#~ "Rebutja autom�ticament dels usuaris que no estiguin a la llista d'amics"
+
+# Fixme
+#~ msgid "bug master"
+#~ msgstr "bug master"
+
 #~ msgid "Error requesting %s"
 #~ msgstr "S'ha produ誰t un error en sol揃licitar %s"
 
--- a/po/cs.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/cs.po	Sat Feb 12 23:54:14 2011 +0000
@@ -9,8 +9,8 @@
 msgstr ""
 "Project-Id-Version: pidgin VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 22:11-0500\n"
-"PO-Revision-Date: 2010-12-21 09:08+0100\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
+"PO-Revision-Date: 2011-02-01 21:09+0100\n"
 "Last-Translator: David Vachulka <david@konstrukce-cad.com>\n"
 "Language-Team: Czech <cs@li.org>\n"
 "Language: cs\n"
@@ -2328,8 +2328,12 @@
 "Cesta, kam ukl叩dat soubory\n"
 "(Zadejte pros鱈m plnou cestu)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "Automaticky odm鱈tat od u転ivatel哲, kte�鱈 nejsou na seznamu kamar叩d哲"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"Kdy転 p�ijde po転adavek na p�enos souboru od n�koho,\n"
+"kdo nen鱈 v seznamu kamar叩d哲:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2342,6 +2346,9 @@
 msgid "Create a new directory for each user"
 msgstr "Vytvo�it nov箪 adres叩� pro ka転d辿ho u転ivatele"
 
+msgid "Escape the filenames"
+msgstr "Upravit jm辿na soubor哲"
+
 msgid "Notes"
 msgstr "Pozn叩mky"
 
@@ -3793,7 +3800,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr "Server vy転aduje textovou autentizaci v ne邸ifrovan辿m proudu"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "Neplatn叩 odpov�� od serveru"
 
@@ -6074,6 +6084,20 @@
 msgid "Retrieving User Information..."
 msgstr "Z鱈sk叩v叩m informace o u転ivateli..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "Byl jste vykopnut z MultiMX."
+
+msgid "was kicked"
+msgstr "byl vykopnut"
+
+msgid "_Room Name:"
+msgstr "_M鱈stnost:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "P�i邸lo v叩m pozv叩n鱈"
+
 msgid "Loading menu..."
 msgstr "Na�鱈t叩m menu..."
 
@@ -6101,20 +6125,6 @@
 msgid "Enable splash-screen popup"
 msgstr "Povolit zobrazen鱈 spou邸t�c鱈 obrazovky"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "Byl jste vykopnut z MultiMX."
-
-msgid "was kicked"
-msgstr "byl vykopnut"
-
-msgid "_Room Name:"
-msgstr "_M鱈stnost:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "P�i邸lo v叩m pozv叩n鱈"
-
 msgid "Last Online"
 msgstr "Naposledy p�ipojen"
 
@@ -7776,75 +7786,6 @@
 "Images. Proto転e bude odkryta va邸e IP adresa, d叩 se to pova転ovat za riziko "
 "pro soukrom鱈."
 
-msgid "Invalid SNAC"
-msgstr "Neplatn辿 SNAC"
-
-msgid "Server rate limit exceeded"
-msgstr "P�ekro�en limit pom�ru serveru"
-
-msgid "Client rate limit exceeded"
-msgstr "P�ekro�en limit pom�ru klienta"
-
-msgid "Service unavailable"
-msgstr "Slu転ba nedostupn叩"
-
-msgid "Service not defined"
-msgstr "Slu転ba nedefinov叩na"
-
-msgid "Obsolete SNAC"
-msgstr "Zastaral辿 SNAC"
-
-msgid "Not supported by host"
-msgstr "Nepodporov叩no hostitelem"
-
-msgid "Not supported by client"
-msgstr "Nepodporov叩no klientem"
-
-msgid "Refused by client"
-msgstr "Odm鱈tnuto klientem"
-
-msgid "Reply too big"
-msgstr "Odpov�� p�鱈li邸 velk叩"
-
-msgid "Responses lost"
-msgstr "Odpov�di ztraceny"
-
-msgid "Request denied"
-msgstr "Po転adavek zam鱈tnut"
-
-msgid "Busted SNAC payload"
-msgstr "Po邸kozen叩 data SNAC"
-
-msgid "Insufficient rights"
-msgstr "Nedostate�n叩 opr叩vn�n鱈"
-
-msgid "In local permit/deny"
-msgstr "V m鱈stn鱈m povolit/zak叩zat"
-
-msgid "Warning level too high (sender)"
-msgstr "Hladina varov叩n鱈 p�鱈li邸 vysok叩 (odesl叩n鱈)"
-
-msgid "Warning level too high (receiver)"
-msgstr "Hladina varov叩n鱈 p�鱈li邸 vysok叩 (p�鱈jem)"
-
-msgid "User temporarily unavailable"
-msgstr "U転ivatel do�asn� nedostupn箪"
-
-msgid "No match"
-msgstr "貼叩dn叩 shoda"
-
-msgid "List overflow"
-msgstr "P�ete�en鱈 seznamu"
-
-msgid "Request ambiguous"
-msgstr "Po転adavek nejednozna�n箪"
-
-msgid "Queue full"
-msgstr "Fronta pln叩"
-
-msgid "Not while on AOL"
-msgstr "Ne kdy転 na AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "Ikona kamar叩da"
@@ -7963,6 +7904,75 @@
 msgid "Capabilities"
 msgstr "Schopnosti"
 
+msgid "Invalid SNAC"
+msgstr "Neplatn辿 SNAC"
+
+msgid "Server rate limit exceeded"
+msgstr "P�ekro�en limit pom�ru serveru"
+
+msgid "Client rate limit exceeded"
+msgstr "P�ekro�en limit pom�ru klienta"
+
+msgid "Service unavailable"
+msgstr "Slu転ba nedostupn叩"
+
+msgid "Service not defined"
+msgstr "Slu転ba nedefinov叩na"
+
+msgid "Obsolete SNAC"
+msgstr "Zastaral辿 SNAC"
+
+msgid "Not supported by host"
+msgstr "Nepodporov叩no hostitelem"
+
+msgid "Not supported by client"
+msgstr "Nepodporov叩no klientem"
+
+msgid "Refused by client"
+msgstr "Odm鱈tnuto klientem"
+
+msgid "Reply too big"
+msgstr "Odpov�� p�鱈li邸 velk叩"
+
+msgid "Responses lost"
+msgstr "Odpov�di ztraceny"
+
+msgid "Request denied"
+msgstr "Po転adavek zam鱈tnut"
+
+msgid "Busted SNAC payload"
+msgstr "Po邸kozen叩 data SNAC"
+
+msgid "Insufficient rights"
+msgstr "Nedostate�n叩 opr叩vn�n鱈"
+
+msgid "In local permit/deny"
+msgstr "V m鱈stn鱈m povolit/zak叩zat"
+
+msgid "Warning level too high (sender)"
+msgstr "Hladina varov叩n鱈 p�鱈li邸 vysok叩 (odesl叩n鱈)"
+
+msgid "Warning level too high (receiver)"
+msgstr "Hladina varov叩n鱈 p�鱈li邸 vysok叩 (p�鱈jem)"
+
+msgid "User temporarily unavailable"
+msgstr "U転ivatel do�asn� nedostupn箪"
+
+msgid "No match"
+msgstr "貼叩dn叩 shoda"
+
+msgid "List overflow"
+msgstr "P�ete�en鱈 seznamu"
+
+msgid "Request ambiguous"
+msgstr "Po転adavek nejednozna�n箪"
+
+msgid "Queue full"
+msgstr "Fronta pln叩"
+
+msgid "Not while on AOL"
+msgstr "Ne kdy転 na AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8552,14 +8562,14 @@
 msgid "Select Server"
 msgstr "Vyberte server"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "P�ipojit se pomoc鱈 TCP"
@@ -12088,9 +12098,6 @@
 msgid "Fatal Error"
 msgstr "Fat叩ln鱈 chyba"
 
-msgid "bug master"
-msgstr "lovec chyb"
-
 msgid "artist"
 msgstr "um�lec"
 
@@ -12270,6 +12277,9 @@
 msgid "Maithili"
 msgstr "Maithili"
 
+msgid "Meadow Mari"
+msgstr "Meadow Mari"
+
 msgid "Macedonian"
 msgstr "Makedon邸tina"
 
@@ -15350,6 +15360,12 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "Nem叩te opr叩vn�n鱈 k odinstalaci t辿to aplikace."
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr "Automaticky odm鱈tat od u転ivatel哲, kte�鱈 nejsou na seznamu kamar叩d哲"
+
+#~ msgid "bug master"
+#~ msgstr "lovec chyb"
+
 #~ msgid "Error requesting %s"
 #~ msgstr "Chyba 転叩dosti %s"
 
--- a/po/de.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/de.po	Sat Feb 12 23:54:14 2011 +0000
@@ -2,7 +2,7 @@
 # Pidgin German translation
 # Copyright (C) 2001, Daniel Seifert <Pidgin-translation@dseifert.de>
 # Copyright (C) 2002, Karsten Weiss <knweiss@gmx.de>
-# Copyright (C) 2002-2010, Bj旦rn Voigt <bjoern@cs.tu-berlin.de>,
+# Copyright (C) 2002-2011, Bj旦rn Voigt <bjoern@cs.tu-berlin.de>,
 #                     Jochen Kemnade <jochenkemnade@web.de>
 #
 # This file is distributed under the same license as the Pidgin package.
@@ -11,9 +11,9 @@
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-22 10:12+0100\n"
-"PO-Revision-Date: 2010-12-22 10:21+0100\n"
-"Last-Translator: Bj旦rn Voigt <bjoern@cs.tu-berlin.de>\n"
+"POT-Creation-Date: 2011-02-06 14:22+0100\n"
+"PO-Revision-Date: 2011-02-06 14:22+0100\n"
+"Last-Translator: Jochen Kemnade <jochenkemnade@web.de>\n"
 "Language-Team: German <de@li.org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
@@ -401,7 +401,7 @@
 msgstr "Chat betreten"
 
 msgid "Please enter the name of the chat you want to join."
-msgstr "Bitte geben Sie die den Namen des Chats an, den Sie betreten m旦chten."
+msgstr "Bitte geben Sie den Namen des Chats an, den Sie betreten m旦chten."
 
 msgid "Join"
 msgstr "Betreten"
@@ -568,7 +568,7 @@
 msgstr "Konten reaktivieren"
 
 msgid "No such command."
-msgstr "Es gibt kein solches Kommando."
+msgstr "Unbekanntes Kommando."
 
 msgid "Syntax Error:  You typed the wrong number of arguments to that command."
 msgstr ""
@@ -581,7 +581,8 @@
 msgstr "Dieses Kommando funktioniert nur in Chats, nicht bei IMs."
 
 msgid "That command only works in IMs, not chats."
-msgstr "Dieses Kommando funktioniert nur bei IMs, nicht bei Chats."
+msgstr ""
+"Dieses Kommando funktioniert nur bei Sofortnachrichten, nicht bei Chats."
 
 msgid "That command doesn't work on this protocol."
 msgstr "Dieses Kommando funktioniert nicht in diesem Protokoll."
@@ -646,7 +647,7 @@
 msgstr "Einladen..."
 
 msgid "Enable Logging"
-msgstr "Mitschnitt einschalten"
+msgstr "Mitschnitt aktivieren"
 
 msgid "Enable Sounds"
 msgstr "Kl辰nge aktivieren"
@@ -801,7 +802,7 @@
 msgstr "Status"
 
 msgid "Close this window when all transfers finish"
-msgstr "Schlie�e dieses Fenster, wenn alle �bertragungen abgeschlossen sind"
+msgstr "Fenster schlie�en, wenn alle �bertragungen abgeschlossen sind"
 
 msgid "Clear finished transfers"
 msgstr "Entferne komplette �bertragungen"
@@ -816,7 +817,7 @@
 msgstr "Abgebrochen"
 
 msgid "Failed"
-msgstr "Gescheitert"
+msgstr "Fehlgeschlagen"
 
 #, c-format
 msgid "%.2f KiB/s"
@@ -884,11 +885,11 @@
 
 #, c-format
 msgid "Conversations in %s"
-msgstr "Unterhaltung in %s"
+msgstr "Unterhaltungen in %s"
 
 #, c-format
 msgid "Conversations with %s"
-msgstr "Unterhaltung mit %s"
+msgstr "Unterhaltungen mit %s"
 
 msgid "All Conversations"
 msgstr "Alle Unterhaltungen"
@@ -910,7 +911,7 @@
 msgstr "Ablehnen"
 
 msgid "Call in progress."
-msgstr "Anruf l辰uft."
+msgstr "Verbindungsaufbau."
 
 msgid "The call has been terminated."
 msgstr "Der Anruf wurde beendet."
@@ -926,7 +927,7 @@
 "starten."
 
 msgid "You have rejected the call."
-msgstr "Sie haben den Anruf abgelehnt."
+msgstr "Sie haben den Anruf abgewiesen."
 
 msgid "call: Make an audio call."
 msgstr "call: Einen Audio-Anruf t辰tigen."
@@ -1009,7 +1010,7 @@
 msgstr "Keine Einstellungsoptionen f端r dieses Plugin."
 
 msgid "Error loading plugin"
-msgstr "Beim Laden des Plugins traten Fehler auf"
+msgstr "Beim Laden des Plugins ist ein Fehler aufgetreten"
 
 msgid "The selected file is not a valid plugin."
 msgstr "Die gew辰hlte Datei ist kein g端ltiges Plugin."
@@ -1021,7 +1022,7 @@
 "genaue Fehlermeldung zu sehen."
 
 msgid "Select plugin to install"
-msgstr "W辰hlen Sie ein Plugin zum Installieren"
+msgstr "Zu installierendes Plugin ausw辰hlen"
 
 msgid "You can (un)load plugins from the following list."
 msgstr "Die k旦nnen Plugins von der folgenden Liste laden bzw. entladen."
@@ -1064,10 +1065,10 @@
 msgstr "Alarm, wenn Buddy..."
 
 msgid "Signs on"
-msgstr "sich angemeldet"
+msgstr "sich anmeldet"
 
 msgid "Signs off"
-msgstr "sich abgemeldet"
+msgstr "sich abmeldet"
 
 msgid "Goes away"
 msgstr "hinausgeht"
@@ -1085,7 +1086,7 @@
 msgstr "zu tippen beginnt"
 
 msgid "Pauses while typing"
-msgstr "beim Tippen anh辰lt"
+msgstr "das Tippen unterbricht"
 
 msgid "Stops typing"
 msgstr "aufh旦rt zu tippen"
@@ -1119,13 +1120,13 @@
 msgstr "Wiederkehrend"
 
 msgid "Cannot create pounce"
-msgstr "Kann Alarm nicht erzeugen"
+msgstr "Alarm konnte nicht erstellt werden"
 
 msgid "You do not have any accounts."
 msgstr "Sie haben keine Kontos."
 
 msgid "You must create an account first before you can create a pounce."
-msgstr "Sie m端ssen ein Konto anlegen, bevor Sie einen Alarm erzeugen k旦nnen."
+msgstr "Sie m端ssen ein Konto anlegen, bevor Sie einen Alarm einrichten k旦nnen."
 
 #, c-format
 msgid "Are you sure you want to delete the pounce on %s for %s?"
@@ -1164,7 +1165,7 @@
 
 #, c-format
 msgid "%s has become idle (%s)"
-msgstr "%s wurde unt辰tig (%s)"
+msgstr "%s ist nun unt辰tig (%s)"
 
 #, c-format
 msgid "%s has gone away. (%s)"
@@ -1178,7 +1179,7 @@
 msgstr "Unbekanntes Alarm-Ereignis. Bitte berichten Sie dieses Problem!"
 
 msgid "Based on keyboard use"
-msgstr "Abh辰ngig von Tastaturbenutzung"
+msgstr "Abh辰ngig von der Tastaturbenutzung"
 
 msgid "From last sent message"
 msgstr "Von letzter gesendeter Nachricht"
@@ -1199,7 +1200,7 @@
 msgstr "Mitschnitt-Format"
 
 msgid "Log IMs"
-msgstr "IMs mitschneiden"
+msgstr "Sofortnachrichten mitschneiden"
 
 msgid "Log chats"
 msgstr "Chats mitschneiden"
@@ -1247,7 +1248,7 @@
 msgstr "Dr端cken Sie 'Enter', um mehr R辰ume dieser Kategorie zu finden."
 
 msgid "Get"
-msgstr "Holen"
+msgstr "Abrufen"
 
 #. Create the window.
 msgid "Room List"
@@ -1441,7 +1442,7 @@
 msgstr "Statusmeldungen"
 
 msgid "Error loading the plugin."
-msgstr "Beim Laden des Plugins traten Fehler auf."
+msgstr "Beim Laden des Plugins ist ein Fehler aufgetreten."
 
 msgid "Couldn't find X display"
 msgstr "Konnte X-Display nicht finden"
@@ -1519,7 +1520,7 @@
 msgstr "<b>Unterhaltung mit %s am %s:</b><br>"
 
 msgid "History Plugin Requires Logging"
-msgstr "Das Verlaufs-Plugin erfordert das Mitschneiden"
+msgstr "F端r das Verlaufs-Plugin muss das Mitschneiden aktiviert sein"
 
 msgid ""
 "Logging can be enabled from Tools -> Preferences -> Logging.\n"
@@ -1543,7 +1544,7 @@
 "When a new conversation is opened this plugin will insert the last "
 "conversation into the current conversation."
 msgstr ""
-"Wenn eine neue Unterhaltung er旦ffnet wird, f端gt dieses Plugin die letzte "
+"Wenn eine neue Unterhaltung begonnen wird, f端gt dieses Plugin die letzte "
 "Unterhaltung in die aktuelle Unterhaltung ein."
 
 #, c-format
@@ -1607,7 +1608,7 @@
 msgstr "Verschachtelte Gruppen (experimentell)"
 
 msgid "Provides alternate buddylist grouping options."
-msgstr "Bietet alternative Einstellungen f端r die Kontaktlisten-Gruppierung."
+msgstr "Bietet alternative Einstellungen f端r die Gruppierung der Kontaktliste."
 
 msgid "Lastlog"
 msgstr "Verlauf"
@@ -1900,11 +1901,11 @@
 
 #, c-format
 msgid "Failed to get name: %s"
-msgstr "Kann den Namen nicht bekommen: %s"
+msgstr "Name konnte nicht abgerufen werden: %s"
 
 #, c-format
 msgid "Failed to get serv name: %s"
-msgstr "Kann den Serv-Namen nicht bekommen: %s"
+msgstr "Serv-Name konnte nicht abgerufen werden: %s"
 
 msgid "Purple's D-BUS server is not running for the reason listed below"
 msgstr "Purple's D-Bus-Server l辰uft aus dem folgenden Grund nicht"
@@ -2041,7 +2042,7 @@
 msgstr "�bertragung der Datei %s ist komplett"
 
 msgid "File transfer complete"
-msgstr "Datei端bertragung ist komplett"
+msgstr "Datei端bertragung abgeschlossen"
 
 #, c-format
 msgid "You cancelled the transfer of %s"
@@ -2368,8 +2369,12 @@
 "Pfad in denen die Dateien gespeichert werden sollen\n"
 "(Bitte geben Sie den vollst辰ndigen Pfad an)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "Automatisch von Benutzern ablehnen, die nicht in der Buddy-Liste sind"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"Wenn eine Dateitransferanfrage von einem Benutzer ankommt, \n"
+"der *nicht* in Ihrer Buddy-Liste ist:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2382,6 +2387,9 @@
 msgid "Create a new directory for each user"
 msgstr "F端r jeden Benutzer ein neues Verzeichnis anlegen"
 
+msgid "Escape the filenames"
+msgstr "Sonderzeichen in Dateinamen ersetzen"
+
 msgid "Notes"
 msgstr "Notizen"
 
@@ -3850,7 +3858,10 @@
 "Der Server erfordert eine Klartext-Authentifizierung 端ber einen "
 "unverschl端sselten Kanal"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "Ung端ltige Serverantwort"
 
@@ -8730,14 +8741,14 @@
 msgid "Select Server"
 msgstr "Server w辰hlen"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "�ber TCP verbinden"
@@ -8751,6 +8762,9 @@
 msgid "Show chat room when msg comes"
 msgstr "Chatraum zeigen, wenn Nachricht empfangen wird"
 
+msgid "Use default font"
+msgstr "Standardschriftart benutzen"
+
 msgid "Keep alive interval (seconds)"
 msgstr "Intervall zum Aufrechterhalten der Verbindung (Sekunden)"
 
@@ -12328,9 +12342,6 @@
 msgid "Fatal Error"
 msgstr "Schwerer Fehler"
 
-msgid "bug master"
-msgstr "Bug-Master"
-
 msgid "artist"
 msgstr "K端nstler"
 
@@ -12510,6 +12521,9 @@
 msgid "Maithili"
 msgstr "Maithili"
 
+msgid "Meadow Mari"
+msgstr "Wiesen-Mari"
+
 msgid "Macedonian"
 msgstr "Makedonisch"
 
@@ -13448,10 +13462,10 @@
 msgstr "Budd_y-Name:"
 
 msgid "Si_gns on"
-msgstr "si_ch angemeldet"
+msgstr "si_ch anmeldet"
 
 msgid "Signs o_ff"
-msgstr "sich abgemel_det"
+msgstr "sich abmel_det"
 
 msgid "Goes a_way"
 msgstr "hinausgeh_t"
@@ -15662,15 +15676,3 @@
 
 msgid "You do not have permission to uninstall this application."
 msgstr "Sie haben keine Berechtigung, diese Anwendung zu deinstallieren."
-
-#~ msgid "Error requesting %s"
-#~ msgstr "Fehler beim Anfordern von %s"
-
-#~ msgid "An error occurred on the in-band bytestream transfer\n"
-#~ msgstr "Bei der In-Band-Bytestrom-�bertragung trat ein Fehler auf\n"
-
-#~ msgid "Transfer was closed."
-#~ msgstr "�bertragung wurde geschlossen."
-
-#~ msgid "Failed to open in-band bytestream"
-#~ msgstr "�ffnen des In-Band-Bytestroms fehlgeschlagen"
--- a/po/el.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/el.po	Sat Feb 12 23:54:14 2011 +0000
@@ -18,7 +18,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: Plural-Forms:  nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "X-Generator: Lokalize 0.3\n"
 
 #. Translators may want to transliterate the name.
--- a/po/en_AU.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/en_AU.po	Sat Feb 12 23:54:14 2011 +0000
@@ -16,7 +16,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Translators may want to transliterate the name.
 #. It is not to be translated.
--- a/po/en_GB.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/en_GB.po	Sat Feb 12 23:54:14 2011 +0000
@@ -15,7 +15,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Translators may want to transliterate the name.
 #. It is not to be translated.
--- a/po/es.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/es.po	Sat Feb 12 23:54:14 2011 +0000
@@ -7,7 +7,7 @@
 #               <franciscojavier.fernandez.serrador@hispalinux.es>, 2003.
 # Copyright (C) February 2010, Francisco Javier F. Serrador <fserrador@gmail.com>
 # Copyright (C) June 2002, April 2003, January 2004, March 2004, September 2004,
-# 	      January 2005, 2006-2008, July 2009, July 2010, August 2010
+# 	      January 2005, 2006-2008, July 2009, July 2010, August 2010, January 2011
 # 		Javier Fern叩ndez-Sanguino Pe単a  <jfs@debian.org>
 #
 # Agradecemos la ayuda de revisi坦n realizada por:
@@ -53,8 +53,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:33-0500\n"
-"PO-Revision-Date: 2010-12-15 03:32+0100\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
+"PO-Revision-Date: 2011-01-30 21:28+0100\n"
 "Last-Translator: Javier Fern叩ndez-Sanguino <jfs@debian.org>\n"
 "Language-Team:  Spanish team <es@li.org>\n"
 "Language: \n"
@@ -2475,10 +2475,12 @@
 "Ruta donde se guardar叩n los archivos\n"
 "(Debe dar la ruta completa)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr ""
-"Rechazar autom叩ticamente las transferencias de usuarios que no est叩n en mi "
-"lista de amigos"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"Cuando llega una solicitud de transferencia de un usuario que\n"
+"*no* est叩 en su lista de amigos:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2491,6 +2493,9 @@
 msgid "Create a new directory for each user"
 msgstr "Crear un directorio para cada usuario"
 
+msgid "Escape the filenames"
+msgstr "Indentar los nombres de fichero"
+
 msgid "Notes"
 msgstr "Notas"
 
@@ -3954,7 +3959,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr "El servidor solicita autenticaci坦n en claro sobre un canal no cifrado"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "Respuesta inv叩lida del servidor"
 
@@ -6298,6 +6306,20 @@
 msgid "Retrieving User Information..."
 msgstr "Obteniendo la informaci坦n del usuario..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "Ha sido expulsado de este MultiMX."
+
+msgid "was kicked"
+msgstr "fue expulsado"
+
+msgid "_Room Name:"
+msgstr "Nombre de _Sala:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "Ha sido invitado"
+
 msgid "Loading menu..."
 msgstr "Cargando el men炭..."
 
@@ -6325,20 +6347,6 @@
 msgid "Enable splash-screen popup"
 msgstr "Activar la pantalla de bienvenida"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "Ha sido expulsado de este MultiMX."
-
-msgid "was kicked"
-msgstr "fue expulsado"
-
-msgid "_Room Name:"
-msgstr "Nombre de _Sala:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "Ha sido invitado"
-
 msgid "Last Online"
 msgstr "�ltima conexi坦n"
 
@@ -8007,75 +8015,6 @@
 "para Im叩genes de MI.  Como su direcci坦n IP ser叩 revelada, puede considerarse "
 "esto como un riesgo a su privacidad."
 
-msgid "Invalid SNAC"
-msgstr "SNAC inv叩lido"
-
-msgid "Server rate limit exceeded"
-msgstr "Se excedi坦 el l鱈mite de tasa del servidor"
-
-msgid "Client rate limit exceeded"
-msgstr "Se excedi坦 el l鱈mite de tasa del cliente"
-
-msgid "Service unavailable"
-msgstr "Servicio no disponible"
-
-msgid "Service not defined"
-msgstr "Servicio no definido"
-
-msgid "Obsolete SNAC"
-msgstr "SNAC obsoleto"
-
-msgid "Not supported by host"
-msgstr "No soportado por el servidor"
-
-msgid "Not supported by client"
-msgstr "No soportado por el cliente"
-
-msgid "Refused by client"
-msgstr "Rechazado por el cliente"
-
-msgid "Reply too big"
-msgstr "Respuesta demasiado grande"
-
-msgid "Responses lost"
-msgstr "Respuestas perdidas"
-
-msgid "Request denied"
-msgstr "Solicitud denegada"
-
-msgid "Busted SNAC payload"
-msgstr "Carga de SNAC destrozada"
-
-msgid "Insufficient rights"
-msgstr "Derechos insuficientes"
-
-msgid "In local permit/deny"
-msgstr "En la lista local de autorizar/negar"
-
-msgid "Warning level too high (sender)"
-msgstr "Nivel de aviso demasiado alto (emisor)"
-
-msgid "Warning level too high (receiver)"
-msgstr "Nivel de aviso demasiado alto (receptor)"
-
-msgid "User temporarily unavailable"
-msgstr "Usuario temporalmente no disponible"
-
-msgid "No match"
-msgstr "No hubo coincidencia"
-
-msgid "List overflow"
-msgstr "Desbordamiento de la lista"
-
-msgid "Request ambiguous"
-msgstr "Solicitud ambigua"
-
-msgid "Queue full"
-msgstr "Cola llena"
-
-msgid "Not while on AOL"
-msgstr "No mientras est辿 en AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "Icono de amigo"
@@ -8194,6 +8133,75 @@
 msgid "Capabilities"
 msgstr "Capacidades"
 
+msgid "Invalid SNAC"
+msgstr "SNAC inv叩lido"
+
+msgid "Server rate limit exceeded"
+msgstr "Se excedi坦 el l鱈mite de tasa del servidor"
+
+msgid "Client rate limit exceeded"
+msgstr "Se excedi坦 el l鱈mite de tasa del cliente"
+
+msgid "Service unavailable"
+msgstr "Servicio no disponible"
+
+msgid "Service not defined"
+msgstr "Servicio no definido"
+
+msgid "Obsolete SNAC"
+msgstr "SNAC obsoleto"
+
+msgid "Not supported by host"
+msgstr "No soportado por el servidor"
+
+msgid "Not supported by client"
+msgstr "No soportado por el cliente"
+
+msgid "Refused by client"
+msgstr "Rechazado por el cliente"
+
+msgid "Reply too big"
+msgstr "Respuesta demasiado grande"
+
+msgid "Responses lost"
+msgstr "Respuestas perdidas"
+
+msgid "Request denied"
+msgstr "Solicitud denegada"
+
+msgid "Busted SNAC payload"
+msgstr "Carga de SNAC destrozada"
+
+msgid "Insufficient rights"
+msgstr "Derechos insuficientes"
+
+msgid "In local permit/deny"
+msgstr "En la lista local de autorizar/negar"
+
+msgid "Warning level too high (sender)"
+msgstr "Nivel de aviso demasiado alto (emisor)"
+
+msgid "Warning level too high (receiver)"
+msgstr "Nivel de aviso demasiado alto (receptor)"
+
+msgid "User temporarily unavailable"
+msgstr "Usuario temporalmente no disponible"
+
+msgid "No match"
+msgstr "No hubo coincidencia"
+
+msgid "List overflow"
+msgstr "Desbordamiento de la lista"
+
+msgid "Request ambiguous"
+msgstr "Solicitud ambigua"
+
+msgid "Queue full"
+msgstr "Cola llena"
+
+msgid "Not while on AOL"
+msgstr "No mientras est辿 en AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8786,14 +8794,14 @@
 msgid "Select Server"
 msgstr "Seleccionar servidor"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "Conectar por TCP"
@@ -12353,9 +12361,6 @@
 msgid "Fatal Error"
 msgstr "Error fatal"
 
-msgid "bug master"
-msgstr "maestro de las erratas"
-
 msgid "artist"
 msgstr "artista"
 
@@ -12536,6 +12541,9 @@
 msgid "Maithili"
 msgstr "Maithili"
 
+msgid "Meadow Mari"
+msgstr "Mari"
+
 msgid "Macedonian"
 msgstr "Macedonio"
 
@@ -15685,6 +15693,14 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "No tiene permisos para desinstalar esta aplicaci坦n."
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr ""
+#~ "Rechazar autom叩ticamente las transferencias de usuarios que no est叩n en "
+#~ "mi lista de amigos"
+
+#~ msgid "bug master"
+#~ msgstr "maestro de las erratas"
+
 #~ msgid "Error requesting %s"
 #~ msgstr "Error al solicitar %s"
 
@@ -15757,20 +15773,20 @@
 #~ msgstr "Album"
 
 #~ msgid "Current Mood"
-#~ msgstr "Luna actual"
+#~ msgstr "Estado de 叩nimo actual"
 
 #~ msgid "New Mood"
-#~ msgstr "Luna nueva"
+#~ msgstr "Nuevo estado de 叩nimo"
 
 #~ msgid "Change your Mood"
-#~ msgstr "Cambiar su luna"
+#~ msgstr "Cambiar su estado de 叩nimo"
 
 #~ msgid "How do you feel right now?"
 #~ msgstr "多C坦mo se encuentra justo ahora?"
 
 #, fuzzy
 #~ msgid "Change Mood..."
-#~ msgstr "Cambiar su contrase単a..."
+#~ msgstr "Cambiar su estado de 叩nimo..."
 
 #~ msgid "Pager server"
 #~ msgstr "Servidor buscapersonas"
--- a/po/eu.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/eu.po	Sat Feb 12 23:54:14 2011 +0000
@@ -16,7 +16,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. Translators may want to transliterate the name.
 #. It is not to be translated.
--- a/po/fr.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/fr.po	Sat Feb 12 23:54:14 2011 +0000
@@ -4,7 +4,7 @@
 # Copyright (C) 2002, St辿phane Pontier <stephane.pontier@free.fr>
 # Copyright (C) 2002, St辿phane Wirtel <stephane.wirtel@belgacom.net>
 # Copyright (C) 2002, Lo誰c Jeannin <loic.jeannin@free.fr>
-# Copyright (C) 2002-2010, �ric Boumaour <zongo_fr@users.sourceforge.net>
+# Copyright (C) 2002-2011, �ric Boumaour <zongo_fr@users.sourceforge.net>
 #
 # This file is distributed under the same license as the Pidgin package.
 #
@@ -21,14 +21,14 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:33-0500\n"
-"PO-Revision-Date: 2010-12-16 23:25+0100\n"
+"POT-Creation-Date: 2011-01-30 21:28+0100\n"
+"PO-Revision-Date: 2011-01-30 21:14+0100\n"
 "Last-Translator: �ric Boumaour <zongo_fr@users.sourceforge.net>\n"
 "Language-Team: fr <fr@li.org>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: \n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
 #. Translators may want to transliterate the name.
@@ -864,8 +864,8 @@
 "System events will only be logged if the \"Log all status changes to system "
 "log\" preference is enabled."
 msgstr ""
-"Les 辿v辿nements syst竪me ne seront archiv辿s que si l'option 束�Archiver tous "
-"les changements d'辿tat dans les archives syst竪me�損 est activ辿e."
+"Les 辿v辿nements syst竪me ne seront archiv辿s que si l'option 束�Archiver tous les "
+"changements d'辿tat dans les archives syst竪me�損 est activ辿e."
 
 msgid ""
 "Instant messages will only be logged if the \"Log all instant messages\" "
@@ -2372,9 +2372,12 @@
 "Dossier o湛 placer les fichiers\n"
 "(Veuillez fournir le chemin complet)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr ""
-"Refuser automatiquement si l'utilisateur n'est pas dans ma liste de contacts"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"Quand une demande de transfert arrive de quelqu'un qui\n"
+"n'est *pas* dans la liste de contacts�:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2387,6 +2390,9 @@
 msgid "Create a new directory for each user"
 msgstr "Cr辿er un nouveau dossier pour chaque contact"
 
+msgid "Escape the filenames"
+msgstr "Encoder les noms des fichiers"
+
 msgid "Notes"
 msgstr "Notes"
 
@@ -2767,8 +2773,7 @@
 msgstr "Message d辿connect辿"
 
 msgid "You can edit/delete the pounce from the `Buddy Pounces' dialog"
-msgstr ""
-"Vous pouvez modifier ou supprimer l'alerte dans la fen棚tre 束�Alertes�損."
+msgstr "Vous pouvez modifier ou supprimer l'alerte dans la fen棚tre 束�Alertes�損."
 
 msgid "Yes"
 msgstr "Oui"
@@ -3859,7 +3864,10 @@
 "Le serveur demande une authentification en texte non chiffr辿 au travers d'un "
 "flux crypt辿."
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "R辿ponse non valide du serveur"
 
@@ -6197,6 +6205,20 @@
 msgid "Retrieving User Information..."
 msgstr "R辿cup辿ration des informations de l'utilisateur..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "Vous avez 辿t辿 expuls辿 de ce MultiMX."
+
+msgid "was kicked"
+msgstr "a 辿t辿 expuls辿"
+
+msgid "_Room Name:"
+msgstr "_Salon�:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "Vous avez 辿t辿 invit辿"
+
 msgid "Loading menu..."
 msgstr "Chargement du menu..."
 
@@ -6224,20 +6246,6 @@
 msgid "Enable splash-screen popup"
 msgstr "Activer l'affichage de la banni竪re"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "Vous avez 辿t辿 expuls辿 de ce MultiMX."
-
-msgid "was kicked"
-msgstr "a 辿t辿 expuls辿"
-
-msgid "_Room Name:"
-msgstr "_Salon�:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "Vous avez 辿t辿 invit辿"
-
 msgid "Last Online"
 msgstr "En ligne derni竪rement"
 
@@ -7908,75 +7916,6 @@
 "d'images. Votre adresse IP sera r辿v辿l辿e et ceci peut 棚tre consid辿r辿 comme "
 "une faille de s辿curit辿."
 
-msgid "Invalid SNAC"
-msgstr "SNAC non valide"
-
-msgid "Server rate limit exceeded"
-msgstr "Vitesse du serveur d辿pass辿e"
-
-msgid "Client rate limit exceeded"
-msgstr "Vitesse du client d辿pass辿e"
-
-msgid "Service unavailable"
-msgstr "Service non disponible"
-
-msgid "Service not defined"
-msgstr "Service non d辿fini"
-
-msgid "Obsolete SNAC"
-msgstr "SNAC obsol竪te"
-
-msgid "Not supported by host"
-msgstr "Non support辿 par l'h担te"
-
-msgid "Not supported by client"
-msgstr "Non support辿 par le client"
-
-msgid "Refused by client"
-msgstr "Refus辿 par le client"
-
-msgid "Reply too big"
-msgstr "R辿ponse trop grosse"
-
-msgid "Responses lost"
-msgstr "R辿ponses perdues"
-
-msgid "Request denied"
-msgstr "Requ棚te refus辿e"
-
-msgid "Busted SNAC payload"
-msgstr "Charge SNAC incorrecte"
-
-msgid "Insufficient rights"
-msgstr "Droits insuffisants"
-
-msgid "In local permit/deny"
-msgstr "Dans l'autorisation/interdiction locale"
-
-msgid "Warning level too high (sender)"
-msgstr "Niveau d'avertissement trop 辿lev辿 (辿mission)"
-
-msgid "Warning level too high (receiver)"
-msgstr "Niveau d'avertissement trop 辿lev辿 (r辿ception)"
-
-msgid "User temporarily unavailable"
-msgstr "L'utilisateur est temporairement indisponible."
-
-msgid "No match"
-msgstr "Aucun r辿sultat"
-
-msgid "List overflow"
-msgstr "D辿passement de liste"
-
-msgid "Request ambiguous"
-msgstr "Requ棚te ambigu谷"
-
-msgid "Queue full"
-msgstr "File d'attente pleine"
-
-msgid "Not while on AOL"
-msgstr "Impossible sur AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "Ic担ne du contact"
@@ -8095,6 +8034,75 @@
 msgid "Capabilities"
 msgstr "Possibilit辿s"
 
+msgid "Invalid SNAC"
+msgstr "SNAC non valide"
+
+msgid "Server rate limit exceeded"
+msgstr "Vitesse du serveur d辿pass辿e"
+
+msgid "Client rate limit exceeded"
+msgstr "Vitesse du client d辿pass辿e"
+
+msgid "Service unavailable"
+msgstr "Service non disponible"
+
+msgid "Service not defined"
+msgstr "Service non d辿fini"
+
+msgid "Obsolete SNAC"
+msgstr "SNAC obsol竪te"
+
+msgid "Not supported by host"
+msgstr "Non support辿 par l'h担te"
+
+msgid "Not supported by client"
+msgstr "Non support辿 par le client"
+
+msgid "Refused by client"
+msgstr "Refus辿 par le client"
+
+msgid "Reply too big"
+msgstr "R辿ponse trop grosse"
+
+msgid "Responses lost"
+msgstr "R辿ponses perdues"
+
+msgid "Request denied"
+msgstr "Requ棚te refus辿e"
+
+msgid "Busted SNAC payload"
+msgstr "Charge SNAC incorrecte"
+
+msgid "Insufficient rights"
+msgstr "Droits insuffisants"
+
+msgid "In local permit/deny"
+msgstr "Dans l'autorisation/interdiction locale"
+
+msgid "Warning level too high (sender)"
+msgstr "Niveau d'avertissement trop 辿lev辿 (辿mission)"
+
+msgid "Warning level too high (receiver)"
+msgstr "Niveau d'avertissement trop 辿lev辿 (r辿ception)"
+
+msgid "User temporarily unavailable"
+msgstr "L'utilisateur est temporairement indisponible."
+
+msgid "No match"
+msgstr "Aucun r辿sultat"
+
+msgid "List overflow"
+msgstr "D辿passement de liste"
+
+msgid "Request ambiguous"
+msgstr "Requ棚te ambigu谷"
+
+msgid "Queue full"
+msgstr "File d'attente pleine"
+
+msgid "Not while on AOL"
+msgstr "Impossible sur AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8686,14 +8694,14 @@
 msgid "Select Server"
 msgstr "Choisir le serveur"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "Connexion par TCP"
@@ -10445,8 +10453,8 @@
 msgstr ""
 "Le serveur Yahoo! a demand辿 une m辿thode d'authentification non reconnue. "
 "Cette version de l'application n'arrivera probablement pas � se connecter au "
-"service Yahoo!. Vous pouvez v辿rifier qu'une mise � jour est disponible sur "
-"%s."
+"service Yahoo!. Vous pouvez v辿rifier qu'une mise � jour est disponible sur %"
+"s."
 
 msgid "Failed Yahoo! Authentication"
 msgstr "�chec de l'authentification Yahoo!"
@@ -12257,9 +12265,6 @@
 msgid "Fatal Error"
 msgstr "Erreur critique"
 
-msgid "bug master"
-msgstr "maitre des bogues"
-
 msgid "artist"
 msgstr "artiste"
 
@@ -12439,6 +12444,9 @@
 msgid "Maithili"
 msgstr "Ma誰hili"
 
+msgid "Meadow Mari"
+msgstr "Mari des prairies"
+
 msgid "Macedonian"
 msgstr "Mac辿donien"
 
@@ -12559,8 +12567,8 @@
 "to multiple messaging services at once.  %s is written in C using GTK+.  %s "
 "is released, and may be modified and redistributed,  under the terms of the "
 "GPL version 2 (or later).  A copy of the GPL is distributed with %s.  %s is "
-"copyrighted by its contributors, a list of whom is also distributed with "
-"%s.  There is no warranty for %s.<BR><BR>"
+"copyrighted by its contributors, a list of whom is also distributed with %"
+"s.  There is no warranty for %s.<BR><BR>"
 msgstr ""
 "%s est un client de messagerie bas辿 sur libpurple capable de se connecter � "
 "de multiples services de messageries instantan辿es. %s est 辿crit en C et "
@@ -13115,16 +13123,16 @@
 
 #, c-format
 msgid ""
-"Are you sure you want to permanently delete the log of the conversation in "
-"%s which started at %s?"
+"Are you sure you want to permanently delete the log of the conversation in %"
+"s which started at %s?"
 msgstr ""
 "�tes-vous s短r de vouloir supprimer les archives de la conversation dans %s "
 "dat辿e du %s�?"
 
 #, c-format
 msgid ""
-"Are you sure you want to permanently delete the system log which started at "
-"%s?"
+"Are you sure you want to permanently delete the system log which started at %"
+"s?"
 msgstr "�tes-vous s短r de vouloir supprimer les archives syst竪me dat辿es du %s�?"
 
 msgid "Delete Log?"
@@ -14956,8 +14964,8 @@
 "'Enter' in the entry box to send. Watch the debug window."
 msgstr ""
 "Permet d'envoyer des donn辿es brutes aux protocoles en mode texte (XMPP, MSN, "
-"IRC, TOC). Tapez 束�Entr辿e�損 dans la bo樽te de saisie pour envoyer. Observez "
-"le r辿sultat dans la fen棚tre de debug."
+"IRC, TOC). Tapez 束�Entr辿e�損 dans la bo樽te de saisie pour envoyer. Observez le "
+"r辿sultat dans la fen棚tre de debug."
 
 #, c-format
 msgid "You can upgrade to %s %s today."
@@ -15485,13 +15493,13 @@
 #, no-c-format
 msgid ""
 "Error Installing Spellchecking ($R3).$\\rIf retrying fails, manual "
-"installation instructions are at: http://developer.pidgin.im/wiki/Installing"
-"%20Pidgin#manual_win32_spellcheck_installation"
+"installation instructions are at: http://developer.pidgin.im/wiki/Installing%"
+"20Pidgin#manual_win32_spellcheck_installation"
 msgstr ""
 "Erreur lors de l'installation du correcteur orthographique ($R3).$\\rSi une "
 "nouvelle tentative 辿choue, veuillez suivre les instructions sur http://"
-"developer.pidgin.im/wiki/Installing"
-"%20Pidgin#manual_win32_spellcheck_installation"
+"developer.pidgin.im/wiki/Installing%"
+"20Pidgin#manual_win32_spellcheck_installation"
 
 #. Installer Subsection Text
 msgid "GTK+ Runtime (required if not present)"
@@ -15570,6 +15578,14 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "Vous n'avez pas les permissions pour supprimer cette application."
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr ""
+#~ "Refuser automatiquement si l'utilisateur n'est pas dans ma liste de "
+#~ "contacts"
+
+#~ msgid "bug master"
+#~ msgstr "maitre des bogues"
+
 #~ msgid "An error occurred on the in-band bytestream transfer\n"
 #~ msgstr "Erreur lors du transfert dans le flux de donn辿es in-band.\n"
 
--- a/po/gl.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/gl.po	Sat Feb 12 23:54:14 2011 +0000
@@ -18,7 +18,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: KBabel 1.11.4\n"
 
 #. Translators may want to transliterate the name.
--- a/po/he.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/he.po	Sat Feb 12 23:54:14 2011 +0000
@@ -8,8 +8,8 @@
 msgstr ""
 "Project-Id-Version: he\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:33-0500\n"
-"PO-Revision-Date: 2010-12-16 16:39+0200\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
+"PO-Revision-Date: 2011-01-26 08:34+0200\n"
 "Last-Translator: Shalom Craimer <scraimer at g mail dot com>\n"
 "Language-Team: Hebrew <he@li.org>\n"
 "Language: he\n"
@@ -2278,8 +2278,12 @@
 "�廬�� �廩��廨 �� �廬 �廡�廢��\n"
 "(�廩 �廖廚廡 �廬�� ���)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "��� �������廬 ��廩廬�廩�� 廩���� �廨廩��廬 ���廨�� 廩��"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"��廩廨 ���廣� �廡廩� ��廣�廨廬-廡��廛 ��廩廬�廩\n"
+"�廩廨 *����* �廨廩��廬 ���廨�� 廩��:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2291,6 +2295,9 @@
 msgid "Create a new directory for each user"
 msgstr "廢�廨 廖廚廨��� ��廩� 廣��廨 �� �廩廬�廩"
 
+msgid "Escape the filenames"
+msgstr "廡�� ��廬��廬 �廣��廬��廬 �廩��廬 �廡�廢��"
+
 msgid "Notes"
 msgstr "�廣廨�廬"
 
@@ -3724,7 +3731,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr "�廩廨廬 ��廨廩 ����廬 �� ��廢廚� �廣� 廬廡廩�廨廬 �� ��廢廚�廬"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "廬���� �� 廬廡廚� ��廩廨廬"
 
@@ -5980,6 +5990,20 @@
 msgid "Retrieving User Information..."
 msgstr "廩��廝 ���廣 �廩廬�廩..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "��廣�廬 �廬�� MultiMX ��."
+
+msgid "was kicked"
+msgstr "��廣�/�"
+
+msgid "_Room Name:"
+msgstr "廩� _��廨:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "�����廬"
+
 msgid "Loading menu..."
 msgstr "��廣� 廬廚廨��..."
 
@@ -6007,20 +6031,6 @@
 msgid "Enable splash-screen popup"
 msgstr "�廚廩廨 廚廬��廬 ����-�廡���"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "��廣�廬 �廬�� MultiMX ��."
-
-msgid "was kicked"
-msgstr "��廣�/�"
-
-msgid "_Room Name:"
-msgstr "廩� _��廨:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "�����廬"
-
 msgid "Last Online"
 msgstr "����廨 ��廨��"
 
@@ -7620,75 +7630,6 @@
 "�� ��廨廩 ����廨 �廩�廨 ��� 廩�� ���廩���, ����廛 廣��廨 廬����廬 ����廣�廬. ������ 廩�廬��廬 "
 "�-IP 廩�� 廬��廩廝, ��廬�� ��� ���廩� �廖���� �廚廨���廬�."
 
-msgid "Invalid SNAC"
-msgstr "SNAC �� 廬廡廝"
-
-msgid "Server rate limit exceeded"
-msgstr "�廚廨�廬 �廣�廨 �����廬 �廩廨廬"
-
-msgid "Client rate limit exceeded"
-msgstr "�廚廨�廬 �廣�廨 �����廬 ��廡��"
-
-msgid "Service unavailable"
-msgstr "�廩�廨�廬 ���� ����"
-
-msgid "Service not defined"
-msgstr "廩�廨�廬 ���� ����廨"
-
-msgid "Obsolete SNAC"
-msgstr "SNAC ���廩�"
-
-msgid "Not supported by host"
-msgstr "�� �廬�� 廣�-��� �廩廨廬"
-
-msgid "Not supported by client"
-msgstr "�� �廬�� 廣�-��� ��廡��"
-
-msgid "Refused by client"
-msgstr "�����廨 ���� 廣� ��� ��廡��."
-
-msgid "Reply too big"
-msgstr "��廣�� ���� ����"
-
-msgid "Responses lost"
-msgstr "���� ��廩����"
-
-msgid "Request denied"
-msgstr "��廡廩� ����廬"
-
-msgid "Busted SNAC payload"
-msgstr "���廣 廚��� �-SNAC"
-
-msgid "Insufficient rights"
-msgstr "��� �� �廨廩��廬"
-
-msgid "In local permit/deny"
-msgstr "���廩�廨/廩���� �廡�����"
-
-msgid "Warning level too high (sender)"
-msgstr "廨�廬 ���廨� ����� ��� (廩���("
-
-msgid "Warning level too high (receiver)"
-msgstr "廨�廬 ���廨� ����� ��� (�廡��)"
-
-msgid "User temporarily unavailable"
-msgstr "��廩廬�廩 ���� ���� �廨�廣"
-
-msgid "No match"
-msgstr "��� �廬���"
-
-msgid "List overflow"
-msgstr "���廩廬 ������廬 �廨廩���"
-
-msgid "Request ambiguous"
-msgstr "�廡廩� �� �廨�廨�"
-
-msgid "Queue full"
-msgstr "�廬�廨 ���"
-
-msgid "Not while on AOL"
-msgstr "�� ���� 廩��廬 �-AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "廖�� ��廩 �廡廩廨"
@@ -7807,6 +7748,75 @@
 msgid "Capabilities"
 msgstr "�����廬"
 
+msgid "Invalid SNAC"
+msgstr "SNAC �� 廬廡廝"
+
+msgid "Server rate limit exceeded"
+msgstr "�廚廨�廬 �廣�廨 �����廬 �廩廨廬"
+
+msgid "Client rate limit exceeded"
+msgstr "�廚廨�廬 �廣�廨 �����廬 ��廡��"
+
+msgid "Service unavailable"
+msgstr "�廩�廨�廬 ���� ����"
+
+msgid "Service not defined"
+msgstr "廩�廨�廬 ���� ����廨"
+
+msgid "Obsolete SNAC"
+msgstr "SNAC ���廩�"
+
+msgid "Not supported by host"
+msgstr "�� �廬�� 廣�-��� �廩廨廬"
+
+msgid "Not supported by client"
+msgstr "�� �廬�� 廣�-��� ��廡��"
+
+msgid "Refused by client"
+msgstr "�����廨 ���� 廣� ��� ��廡��."
+
+msgid "Reply too big"
+msgstr "��廣�� ���� ����"
+
+msgid "Responses lost"
+msgstr "���� ��廩����"
+
+msgid "Request denied"
+msgstr "��廡廩� ����廬"
+
+msgid "Busted SNAC payload"
+msgstr "���廣 廚��� �-SNAC"
+
+msgid "Insufficient rights"
+msgstr "��� �� �廨廩��廬"
+
+msgid "In local permit/deny"
+msgstr "���廩�廨/廩���� �廡�����"
+
+msgid "Warning level too high (sender)"
+msgstr "廨�廬 ���廨� ����� ��� (廩���("
+
+msgid "Warning level too high (receiver)"
+msgstr "廨�廬 ���廨� ����� ��� (�廡��)"
+
+msgid "User temporarily unavailable"
+msgstr "��廩廬�廩 ���� ���� �廨�廣"
+
+msgid "No match"
+msgstr "��� �廬���"
+
+msgid "List overflow"
+msgstr "���廩廬 ������廬 �廨廩���"
+
+msgid "Request ambiguous"
+msgstr "�廡廩� �� �廨�廨�"
+
+msgid "Queue full"
+msgstr "�廬�廨 ���"
+
+msgid "Not while on AOL"
+msgstr "�� ���� 廩��廬 �-AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8398,14 +8408,14 @@
 msgid "Select Server"
 msgstr "��廨 廩廨廬"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "�廬��廨 �廣�廨廬 TCP"
@@ -11881,9 +11891,6 @@
 msgid "Fatal Error"
 msgstr "廩���� 廡����廬"
 
-msgid "bug master"
-msgstr "廩廨-������"
-
 msgid "artist"
 msgstr "���"
 
@@ -12063,6 +12070,9 @@
 msgid "Maithili"
 msgstr "��廬'���"
 
+msgid "Meadow Mari"
+msgstr "Meadow Mari"
+
 msgid "Macedonian"
 msgstr "�廡����廬"
 
@@ -15107,6 +15117,12 @@
 msgid "You do not have permission to uninstall this application."
 msgstr ".��� �� ���廬 ����廡 廬���� ��廬"
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr "��� �������廬 ��廩廬�廩�� 廩���� �廨廩��廬 ���廨�� 廩��"
+
+#~ msgid "bug master"
+#~ msgstr "廩廨-������"
+
 #~ msgid "An error occurred on the in-band bytestream transfer\n"
 #~ msgstr "�廨廣� 廩���� �廣廬 ��廣�廨� ��廨� �廬���\n"
 
--- a/po/hu.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/hu.po	Sat Feb 12 23:54:14 2011 +0000
@@ -1,22 +1,22 @@
 # Hungarian translation of pidgin.
-# Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 # This file is distributed under the same license as the Pidgin package.
 # The Hungarian translation of Pidgin was sponsored by Novell Hungary, many thanks for it!
 #
 # Zoltan Sutto <suttozoltan@chello.hu>, 2003.
-# Gabor Kelemen <kelemeng at gnome dot hu>, 2005, 2006, 2007, 2008, 2009, 2010.
-msgid ""
-msgstr ""
-"Project-Id-Version: pidgin 2.7\n"
+# Gabor Kelemen <kelemeng at gnome dot hu>, 2005, 2006, 2007, 2008, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: pidgin 2.7.10\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-21 15:20+0100\n"
-"PO-Revision-Date: 2010-12-21 15:19+0100\n"
+"POT-Creation-Date: 2011-01-25 15:12+0100\n"
+"PO-Revision-Date: 2011-01-25 15:12+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng at gnome dot hu>\n"
 "Language-Team: Hungarian <gnome at fsf dot hu>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: \n"
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 "X-Generator: KBabel 1.11.4\n"
 
@@ -2350,9 +2350,12 @@
 "A f叩jlok ment辿si 炭tvonala\n"
 "(Teljes el辿r辿si utat adjon meg)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr ""
-"Automatikus visszautas鱈t叩s a partnerlist叩n nem szerepl� felhaszn叩l坦kt坦l"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"Ha f叩jlk端ld辿si k辿r辿s 辿rkezik egy a partnerlist叩n NEM szerepl�\n"
+"felhaszn叩l坦t坦l:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2365,6 +2368,9 @@
 msgid "Create a new directory for each user"
 msgstr "�j k旦nyvt叩r l辿trehoz叩sa minden felhaszn叩l坦hoz"
 
+msgid "Escape the filenames"
+msgstr "F叩jlnevek escape-el辿se."
+
 msgid "Notes"
 msgstr "Megjegyz辿sek"
 
@@ -3828,7 +3834,10 @@
 msgstr ""
 "A kiszolg叩l坦 sz旦veges hiteles鱈t辿st k旦vetel meg egy nem titkos鱈tott csatorn叩n"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "�rv辿nytelen v叩lasz a kiszolg叩l坦t坦l"
 
@@ -6757,8 +6766,8 @@
 #, c-format
 msgid "Unable to send message. Could not get details for user (%s)."
 msgstr ""
-"Az 端zenetet nem lehet elk端ldeni. A felhaszn叩l坦 r辿szletei nem k辿rhet�ek le "
-"(%s)."
+"Az 端zenetet nem lehet elk端ldeni. A felhaszn叩l坦 r辿szletei nem k辿rhet�ek le (%"
+"s)."
 
 #, c-format
 msgid "Unable to add %s to your buddy list (%s)."
@@ -7191,8 +7200,8 @@
 "%s tried to send you a %s file, but we only allow files up to %s over Direct "
 "IM.  Try using file transfer instead.\n"
 msgstr ""
-"%s egy %s f叩jlt pr坦b叩lt k端ldeni, de k旦zvetlen kapcsolatban legfeljebb csak "
-"%s m辿ret撤 f叩jl k端ldhet�. Pr坦b叩lkozzon ink叩bb a f叩jl叩tvitellel.\n"
+"%s egy %s f叩jlt pr坦b叩lt k端ldeni, de k旦zvetlen kapcsolatban legfeljebb csak %"
+"s m辿ret撤 f叩jl k端ldhet�. Pr坦b叩lkozzon ink叩bb a f叩jl叩tvitellel.\n"
 
 #, c-format
 msgid "File %s is %s, which is larger than the maximum size of %s."
@@ -8628,14 +8637,14 @@
 msgid "Select Server"
 msgstr "V叩lassza ki a kiszolg叩l坦t"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "Kapcsol坦d叩s TCP seg鱈ts辿g辿vel"
@@ -10831,8 +10840,8 @@
 #, c-format
 msgid "Access denied: HTTP proxy server forbids port %d tunneling"
 msgstr ""
-"Hozz叩f辿r辿s megtagadva: a HTTP proxy kiszolg叩l坦 tiltja az alagutaz叩st a(z) "
-"%d. porton"
+"Hozz叩f辿r辿s megtagadva: a HTTP proxy kiszolg叩l坦 tiltja az alagutaz叩st a(z) %"
+"d. porton"
 
 #, c-format
 msgid "Error resolving %s"
@@ -11080,8 +11089,8 @@
 "An error was encountered reading your %s.  The file has not been loaded, and "
 "the old file has been renamed to %s~."
 msgstr ""
-"Hiba t旦rt辿nt a(z) %s olvas叩sakor. Ez a f叩jl nem lett bet旦ltve, a r辿gi f叩jl "
-"%s~ n辿ven lett elmentve."
+"Hiba t旦rt辿nt a(z) %s olvas叩sakor. Ez a f叩jl nem lett bet旦ltve, a r辿gi f叩jl %"
+"s~ n辿ven lett elmentve."
 
 msgid ""
 "Chat over IM.  Supports AIM, Google Talk, Jabber/XMPP, MSN, Yahoo and more"
@@ -12207,10 +12216,6 @@
 msgid "Fatal Error"
 msgstr "V辿gzetes hiba"
 
-# fixme: jobb 旦tlet?
-msgid "bug master"
-msgstr "hibaritk鱈t坦"
-
 msgid "artist"
 msgstr "grafikus"
 
@@ -12390,6 +12395,9 @@
 msgid "Maithili"
 msgstr "Maithili"
 
+msgid "Meadow Mari"
+msgstr "Mari"
+
 msgid "Macedonian"
 msgstr "maced坦n"
 
@@ -12510,8 +12518,8 @@
 "to multiple messaging services at once.  %s is written in C using GTK+.  %s "
 "is released, and may be modified and redistributed,  under the terms of the "
 "GPL version 2 (or later).  A copy of the GPL is distributed with %s.  %s is "
-"copyrighted by its contributors, a list of whom is also distributed with "
-"%s.  There is no warranty for %s.<BR><BR>"
+"copyrighted by its contributors, a list of whom is also distributed with %"
+"s.  There is no warranty for %s.<BR><BR>"
 msgstr ""
 "A %s egy libpurple alap炭 modul叩ris 端zenetk端ld� kliens, amely egyszerre t旦bb "
 "端zenetk端ld� szolg叩ltat叩shoz is k辿pes csatlakozni. A %s GTK+ haszn叩lat叩val, C "
@@ -13061,16 +13069,16 @@
 
 #, c-format
 msgid ""
-"Are you sure you want to permanently delete the log of the conversation in "
-"%s which started at %s?"
+"Are you sure you want to permanently delete the log of the conversation in %"
+"s which started at %s?"
 msgstr ""
 "Biztos, hogy t旦r旦lni akarja a(z) %s csatorn叩n folytatott, %s id�pontban "
 "kezd�d旦tt besz辿lget辿s napl坦j叩t?"
 
 #, c-format
 msgid ""
-"Are you sure you want to permanently delete the system log which started at "
-"%s?"
+"Are you sure you want to permanently delete the system log which started at %"
+"s?"
 msgstr ""
 "Biztos, hogy t旦r旦lni akarja a(z) %s id�pontban kezd�d旦tt rendszernapl坦t?"
 
@@ -15421,8 +15429,8 @@
 #, no-c-format
 msgid ""
 "Error Installing Spellchecking ($R3).$\\rIf retrying fails, manual "
-"installation instructions are at: http://developer.pidgin.im/wiki/Installing"
-"%20Pidgin#manual_win32_spellcheck_installation"
+"installation instructions are at: http://developer.pidgin.im/wiki/Installing%"
+"20Pidgin#manual_win32_spellcheck_installation"
 msgstr ""
 "Hiba a helyes鱈r叩s-ellen�rz� telep鱈t辿sekor. ($R3).$\\rHa az 炭jrapr坦b叩lkoz叩s "
 "meghi炭sul, akkor saj叩t kez撤leg is telep鱈theti a http://developer.pidgin.im/"
--- a/po/hy.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/hy.po	Sat Feb 12 23:54:14 2011 +0000
@@ -3,7 +3,6 @@
 # This file is distributed under the same license as the PACKAGE package.
 # David Avsharyan <avsharyan@gmail.com>, 2009.
 #
-#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: am\n"
@@ -16,7 +15,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #. Translators may want to transliterate the name.
 #. It is not to be translated.
--- a/po/mn.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/mn.po	Sat Feb 12 23:54:14 2011 +0000
@@ -15,7 +15,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #. Translators may want to transliterate the name.
 #. It is not to be translated.
--- a/po/ms_MY.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/ms_MY.po	Sat Feb 12 23:54:14 2011 +0000
@@ -15,7 +15,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: KBabel 1.11.4\n"
 
 #. Translators may want to transliterate the name.
--- a/po/nl.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/nl.po	Sat Feb 12 23:54:14 2011 +0000
@@ -8,9 +8,9 @@
 msgstr ""
 "Project-Id-Version: pidgin 2.7.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:34-0500\n"
-"PO-Revision-Date: 2010-12-14 10:45+0100\n"
-"Last-Translator: Dingoe <translations@gvmelle.com>\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
+"PO-Revision-Date: 2011-01-25 10:45+0100\n"
+"Last-Translator: Gideon van Melle <translations@gvmelle.com>\n"
 "Language-Team: Dutch <translations@gvmelle.com>\n"
 "Language: nl\n"
 "MIME-Version: 1.0\n"
@@ -156,7 +156,7 @@
 
 #, c-format
 msgid "%s%s%s%s has made %s his or her buddy%s%s"
-msgstr "%s%s%s%s heeft %s in zijn/haar vriendt gemaakt%s%s"
+msgstr "%s%s%s%s heeft %s in zijn/haar vriend gemaakt%s%s"
 
 msgid "Add buddy to your list?"
 msgstr "Vriend toevoegen aan uw lijst?"
@@ -2365,8 +2365,12 @@
 "Pad voor opslaan bestanden\n"
 "(Geef spv het volledige pad)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "Automatisch verwerpen van gebruikers die niet in vriendenlijst staan"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"Als een bestandsoverdracht aanvraag komt van gebruiker die\n"
+"*niet\" op uw vriendenlijst staat:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2379,6 +2383,9 @@
 msgid "Create a new directory for each user"
 msgstr "Een nieuwe map voor elke gebruiker aanmaken"
 
+msgid "Escape the filenames"
+msgstr "*Escape* de bestandsnamen"
+
 msgid "Notes"
 msgstr "Notities"
 
@@ -3862,7 +3869,10 @@
 "Server vereist een waarmerking via tekstaanmelding via een ongecodeerde "
 "datastroom"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "Ongeldig antwoord van server"
 
@@ -6178,6 +6188,20 @@
 msgid "Retrieving User Information..."
 msgstr "Ophalen Gebruikersinformatie..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "U bent uit deze MultiMX gegooid."
+
+msgid "was kicked"
+msgstr "eruit gegooid"
+
+msgid "_Room Name:"
+msgstr "_Ruimtenaam:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "U heeft uitgenodigd"
+
 msgid "Loading menu..."
 msgstr "Menu aan 't laden..."
 
@@ -6205,20 +6229,6 @@
 msgid "Enable splash-screen popup"
 msgstr "inschakelen splashscreen pop-up"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "U bent uit deze MultiMX gegooid."
-
-msgid "was kicked"
-msgstr "eruit gegooid"
-
-msgid "_Room Name:"
-msgstr "_Ruimtenaam:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "U heeft uitgenodigd"
-
 msgid "Last Online"
 msgstr "Laatste Online"
 
@@ -7892,75 +7902,6 @@
 "afbeeldingen via chatberichten). Dit zou als een inbreuk op de privacy "
 "beschouwd kunnen worden omdat de ander dan uw IP-adres te weten komt."
 
-msgid "Invalid SNAC"
-msgstr "Ongeldige SNAC"
-
-msgid "Server rate limit exceeded"
-msgstr "Server snelheidslimiet overschreden"
-
-msgid "Client rate limit exceeded"
-msgstr "Cli谷nt snelheidslimiet overschreden"
-
-msgid "Service unavailable"
-msgstr "Service niet beschikbaar"
-
-msgid "Service not defined"
-msgstr "Service niet gedefinieerd"
-
-msgid "Obsolete SNAC"
-msgstr "Verouderde SNAC"
-
-msgid "Not supported by host"
-msgstr "Niet ondersteund door computer"
-
-msgid "Not supported by client"
-msgstr "Niet ondersteund door cli谷nt"
-
-msgid "Refused by client"
-msgstr "Gewegerd door cli谷nt"
-
-msgid "Reply too big"
-msgstr "Antwoord te groot"
-
-msgid "Responses lost"
-msgstr "Reacties verloren"
-
-msgid "Request denied"
-msgstr "Aanvraag geweigerd"
-
-msgid "Busted SNAC payload"
-msgstr "SNAC bagage kapot"
-
-msgid "Insufficient rights"
-msgstr "Niet genoeg rechten"
-
-msgid "In local permit/deny"
-msgstr "In lokale toestaan/weigeren"
-
-msgid "Warning level too high (sender)"
-msgstr "Waarschuwingsniveau te hoog (verzender)"
-
-msgid "Warning level too high (receiver)"
-msgstr "Waarschuwingsniveau te hoog (ontvanger)"
-
-msgid "User temporarily unavailable"
-msgstr "Gebruiker tijdelijk niet beschikbaar"
-
-msgid "No match"
-msgstr "Geen overeenkomstige resultaten"
-
-msgid "List overflow"
-msgstr "Te grote lijst"
-
-msgid "Request ambiguous"
-msgstr "Dubieuze aanvraag"
-
-msgid "Queue full"
-msgstr "Wachtrij vol"
-
-msgid "Not while on AOL"
-msgstr "Niet tijdens AOL"
-
 # msgstr ""
 # "(Er is een fout opgetreden bij het ontvangen van het bericht. Of jij en %s "
 # "hebben verschillende coderingen geselecteerd of de andere persoon gebruikt "
@@ -8083,6 +8024,75 @@
 msgid "Capabilities"
 msgstr "Mogelijkheden"
 
+msgid "Invalid SNAC"
+msgstr "Ongeldige SNAC"
+
+msgid "Server rate limit exceeded"
+msgstr "Server snelheidslimiet overschreden"
+
+msgid "Client rate limit exceeded"
+msgstr "Cli谷nt snelheidslimiet overschreden"
+
+msgid "Service unavailable"
+msgstr "Service niet beschikbaar"
+
+msgid "Service not defined"
+msgstr "Service niet gedefinieerd"
+
+msgid "Obsolete SNAC"
+msgstr "Verouderde SNAC"
+
+msgid "Not supported by host"
+msgstr "Niet ondersteund door computer"
+
+msgid "Not supported by client"
+msgstr "Niet ondersteund door cli谷nt"
+
+msgid "Refused by client"
+msgstr "Gewegerd door cli谷nt"
+
+msgid "Reply too big"
+msgstr "Antwoord te groot"
+
+msgid "Responses lost"
+msgstr "Reacties verloren"
+
+msgid "Request denied"
+msgstr "Aanvraag geweigerd"
+
+msgid "Busted SNAC payload"
+msgstr "SNAC bagage kapot"
+
+msgid "Insufficient rights"
+msgstr "Niet genoeg rechten"
+
+msgid "In local permit/deny"
+msgstr "In lokale toestaan/weigeren"
+
+msgid "Warning level too high (sender)"
+msgstr "Waarschuwingsniveau te hoog (verzender)"
+
+msgid "Warning level too high (receiver)"
+msgstr "Waarschuwingsniveau te hoog (ontvanger)"
+
+msgid "User temporarily unavailable"
+msgstr "Gebruiker tijdelijk niet beschikbaar"
+
+msgid "No match"
+msgstr "Geen overeenkomstige resultaten"
+
+msgid "List overflow"
+msgstr "Te grote lijst"
+
+msgid "Request ambiguous"
+msgstr "Dubieuze aanvraag"
+
+msgid "Queue full"
+msgstr "Wachtrij vol"
+
+msgid "Not while on AOL"
+msgstr "Niet tijdens AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8677,14 +8687,14 @@
 msgid "Select Server"
 msgstr "Selecteer Server"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "Verbinden via TCP"
@@ -12256,9 +12266,6 @@
 msgid "Fatal Error"
 msgstr "Fatale fout"
 
-msgid "bug master"
-msgstr "bug master"
-
 msgid "artist"
 msgstr "artiest"
 
@@ -12438,6 +12445,9 @@
 msgid "Maithili"
 msgstr "Maithili"
 
+msgid "Meadow Mari"
+msgstr "Meadow Mari"
+
 msgid "Macedonian"
 msgstr "Macedonisch"
 
@@ -15584,6 +15594,13 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "U mag dit programma niet verwijderen."
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr ""
+#~ "Automatisch verwerpen van gebruikers die niet in vriendenlijst staan"
+
+#~ msgid "bug master"
+#~ msgstr "bug master"
+
 #~ msgid "Error requesting %s"
 #~ msgstr "Fout opvragen  %s"
 
--- a/po/nn.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/nn.po	Sat Feb 12 23:54:14 2011 +0000
@@ -1,19 +1,19 @@
 #
-# Yngve Spjeld Landro <l10n@landro.net>, 2010.
+# Yngve Spjeld Landro <l10n@landro.net>, 2010, 2011.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gtranslator\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:34-0500\n"
-"PO-Revision-Date: 2010-12-14 04:02+0100\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
+"PO-Revision-Date: 2011-01-20 05:01+0100\n"
 "Last-Translator: Yngve Spjeld Landro <l10n@landro.net>\n"
 "Language-Team: Norwegian Nynorsk <l10n@landro.net>\n"
 "Language: nn\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\\n\n"
 
 #. Translators may want to transliterate the name.
 #. It is not to be translated.
@@ -2357,9 +2357,12 @@
 "Fillagringsbane\n"
 "(f淡r opp heile filbana)"
 
-# var: Automatisk avvising fr奪 brukarar utanfor vennelista
-msgid "Automatically reject from users not in buddy list"
-msgstr "Automatisk avvising av brukarar utanfor vennelista"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"N奪r ein filoverf淡ringsf淡respurnad kjem fr奪 ein brukar som\n"
+"*ikkje* er i vennelista di:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2372,6 +2375,9 @@
 msgid "Create a new directory for each user"
 msgstr "Lag ein ny katalog for kvar brukar"
 
+msgid "Escape the filenames"
+msgstr "Vern filnamna (esc.-sekv.)"
+
 msgid "Notes"
 msgstr "Notat"
 
@@ -3822,7 +3828,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr "Tenaren krev autentisering i klartekst over eit ukryptert samband"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "Ugyldig svar fr奪 tenaren"
 
@@ -6123,6 +6132,20 @@
 msgid "Retrieving User Information..."
 msgstr "Hentar brukaropplysningar��"
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "Du er blitt sparka ut fr奪 denne MultiMX-en."
+
+msgid "was kicked"
+msgstr "blei sparka ut"
+
+msgid "_Room Name:"
+msgstr "Rom_namn:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "Du har invitert "
+
 msgid "Loading menu..."
 msgstr "Lastar menyen��"
 
@@ -6151,20 +6174,6 @@
 msgid "Enable splash-screen popup"
 msgstr "Bruk oppstartsvindauge"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "Du er blitt sparka ut fr奪 denne MultiMX-en."
-
-msgid "was kicked"
-msgstr "blei sparka ut"
-
-msgid "_Room Name:"
-msgstr "Rom_namn:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "Du har invitert "
-
 msgid "Last Online"
 msgstr "Sist tilkopla"
 
@@ -7809,75 +7818,6 @@
 "for lynmeldingsbilete. Fordi IP-adressa vil bli avsl淡rt, blir dette sett p奪 "
 "som ein tryggleiksrisiko."
 
-msgid "Invalid SNAC"
-msgstr "Ugyldig SNAC"
-
-msgid "Server rate limit exceeded"
-msgstr "Overskriden tenargrense"
-
-msgid "Client rate limit exceeded"
-msgstr "Overskriden klientgrense"
-
-msgid "Service unavailable"
-msgstr "Tenesta er utilgjengeleg"
-
-msgid "Service not defined"
-msgstr "Tenesta er ikkje definert"
-
-msgid "Obsolete SNAC"
-msgstr "Forelda SNAC"
-
-msgid "Not supported by host"
-msgstr "Ikkje st淡tta av verten"
-
-msgid "Not supported by client"
-msgstr "Ikkje st淡tta av klienten"
-
-msgid "Refused by client"
-msgstr "Avvist av klienten"
-
-msgid "Reply too big"
-msgstr "Svaret er for stort"
-
-msgid "Responses lost"
-msgstr "Tapte svar"
-
-msgid "Request denied"
-msgstr "F淡rsepurnad avvist"
-
-msgid "Busted SNAC payload"
-msgstr "�delagt SNAC-pakkeinnhald"
-
-msgid "Insufficient rights"
-msgstr "Ikkje nok rettar"
-
-msgid "In local permit/deny"
-msgstr "I lokal tilgangs-/forbodsliste"
-
-msgid "Warning level too high (sender)"
-msgstr "For h淡gt 奪tvaringsniv奪 (sendar)"
-
-msgid "Warning level too high (receiver)"
-msgstr "For h淡gt 奪tvaringsniv奪 (mottakar)"
-
-msgid "User temporarily unavailable"
-msgstr "Brukaren er mellombels utilgjengeleg"
-
-msgid "No match"
-msgstr "Ikkje noko samsvar"
-
-msgid "List overflow"
-msgstr "Lista er full"
-
-msgid "Request ambiguous"
-msgstr "Uklar f淡respurnad"
-
-msgid "Queue full"
-msgstr "K淡en er full"
-
-msgid "Not while on AOL"
-msgstr "Ikkje n奪r p奪logga AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "Venneikon"
@@ -7997,6 +7937,75 @@
 msgid "Capabilities"
 msgstr "Evner"
 
+msgid "Invalid SNAC"
+msgstr "Ugyldig SNAC"
+
+msgid "Server rate limit exceeded"
+msgstr "Overskriden tenargrense"
+
+msgid "Client rate limit exceeded"
+msgstr "Overskriden klientgrense"
+
+msgid "Service unavailable"
+msgstr "Tenesta er utilgjengeleg"
+
+msgid "Service not defined"
+msgstr "Tenesta er ikkje definert"
+
+msgid "Obsolete SNAC"
+msgstr "Forelda SNAC"
+
+msgid "Not supported by host"
+msgstr "Ikkje st淡tta av verten"
+
+msgid "Not supported by client"
+msgstr "Ikkje st淡tta av klienten"
+
+msgid "Refused by client"
+msgstr "Avvist av klienten"
+
+msgid "Reply too big"
+msgstr "Svaret er for stort"
+
+msgid "Responses lost"
+msgstr "Tapte svar"
+
+msgid "Request denied"
+msgstr "F淡rsepurnad avvist"
+
+msgid "Busted SNAC payload"
+msgstr "�delagt SNAC-pakkeinnhald"
+
+msgid "Insufficient rights"
+msgstr "Ikkje nok rettar"
+
+msgid "In local permit/deny"
+msgstr "I lokal tilgangs-/forbodsliste"
+
+msgid "Warning level too high (sender)"
+msgstr "For h淡gt 奪tvaringsniv奪 (sendar)"
+
+msgid "Warning level too high (receiver)"
+msgstr "For h淡gt 奪tvaringsniv奪 (mottakar)"
+
+msgid "User temporarily unavailable"
+msgstr "Brukaren er mellombels utilgjengeleg"
+
+msgid "No match"
+msgstr "Ikkje noko samsvar"
+
+msgid "List overflow"
+msgstr "Lista er full"
+
+msgid "Request ambiguous"
+msgstr "Uklar f淡respurnad"
+
+msgid "Queue full"
+msgstr "K淡en er full"
+
+msgid "Not while on AOL"
+msgstr "Ikkje n奪r p奪logga AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8589,14 +8598,14 @@
 msgid "Select Server"
 msgstr "Vel tenar"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "Kopla til med TCP"
@@ -11352,19 +11361,19 @@
 msgstr "Skjul n奪r du er fr奪kopla"
 
 msgid "Show When Offline"
-msgstr "Vis n奪r du er fr奪kopla"
+msgstr "Vis n奪r du er fr_奪kopla"
 
 msgid "_Alias..."
-msgstr "Ka_llenamn��"
+msgstr "_Kallenamn ��"
 
 msgid "_Remove"
 msgstr "_Fjern"
 
 msgid "Set Custom Icon"
-msgstr "Tilpassa ikon"
+msgstr "_Tilpassa ikon"
 
 msgid "Remove Custom Icon"
-msgstr "Fjern eige ikon"
+msgstr "Fjern tilpa_ssa ikon"
 
 msgid "Add _Buddy..."
 msgstr "Legg til _venn��"
@@ -11383,16 +11392,16 @@
 msgstr "_Bli med"
 
 msgid "Auto-Join"
-msgstr "Automatisk p奪logging"
+msgstr "Bli med auto_matisk"
 
 msgid "Persistent"
-msgstr "Varig"
+msgstr "_Varig"
 
 msgid "_Edit Settings..."
-msgstr "Endra _innstillingar��"
+msgstr "Endra _innstillingar ��"
 
 msgid "_Collapse"
-msgstr "_Sl奪 saman"
+msgstr "Sl_奪 saman"
 
 msgid "_Expand"
 msgstr "_Utvid"
@@ -12149,9 +12158,6 @@
 msgid "Fatal Error"
 msgstr "Alvorleg feil"
 
-msgid "bug master"
-msgstr "feilrettingsansvarleg"
-
 msgid "artist"
 msgstr "kunstnar"
 
@@ -12332,6 +12338,10 @@
 msgid "Maithili"
 msgstr "Maithili"
 
+#, fuzzy
+msgid "Meadow Mari"
+msgstr "Ny e-post"
+
 msgid "Macedonian"
 msgstr "Makedonsk"
 
@@ -12625,7 +12635,7 @@
 msgstr "Fjern venn"
 
 msgid "_Remove Buddy"
-msgstr "_Fjern venn"
+msgstr "Fje_rn venn"
 
 #, c-format
 msgid ""
@@ -13534,13 +13544,13 @@
 msgstr "Sl奪 p奪 automatisk port_vidaresending"
 
 msgid "_Manually specify range of ports to listen on:"
-msgstr "F淡r opp _portrekkje det skal lyttast til:"
+msgstr "F淡r opp portr_ekkje det skal lyttast til:"
 
 msgid "_Start:"
-msgstr "_Start:"
+msgstr "_start:"
 
 msgid "_End:"
-msgstr "_Slutt:"
+msgstr "s_lutt:"
 
 #. TURN server
 msgid "Relay Server (TURN)"
@@ -15441,6 +15451,13 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "Du har ikkje rettar til 奪 avinstallera dette programmet."
 
+#~ msgid "bug master"
+#~ msgstr "feilrettingsansvarleg"
+
+# var: Automatisk avvising fr奪 brukarar utanfor vennelista
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr "Automatisk avvising av brukarar utanfor vennelista"
+
 #~ msgid "An error occurred on the in-band bytestream transfer\n"
 #~ msgstr "Overf淡ringa av samtidsdatastraumen feila\n"
 
--- a/po/oc.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/oc.po	Sat Feb 12 23:54:14 2011 +0000
@@ -12,13 +12,14 @@
 # D'autres documents utiles peuvent 棚tre consult辿s sur lo projet de
 # traduction de GNOME.
 # http://wiki.traduc.org/gnomefr/
+# �ric Boumaour <zongo_fr@users.sourceforge.net>, 2011.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:34-0500\n"
-"PO-Revision-Date: 2008-05-09 01:31+0200\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
+"PO-Revision-Date: 2011-01-09 00:11+0100\n"
 "Last-Translator: �ric Boumaour <zongo_fr@users.sourceforge.net>\n"
 "Language-Team: fr <fr@li.org>\n"
 "Language: \n"
@@ -63,7 +64,7 @@
 msgstr ""
 
 msgid "Account was not added"
-msgstr ""
+msgstr "Compte pas apondut"
 
 msgid "Username of an account must be non-empty."
 msgstr ""
@@ -89,17 +90,16 @@
 msgstr ""
 
 msgid "Modify Account"
-msgstr ""
+msgstr "Modificar lo compte"
 
 msgid "New Account"
-msgstr ""
+msgstr "Compte nov竪l"
 
 msgid "Protocol:"
 msgstr "Protoc嘆l :"
 
-#, fuzzy
 msgid "Username:"
-msgstr "_Nom d'utilizaire :"
+msgstr "Nom d'utilizaire :"
 
 msgid "Password:"
 msgstr "Mot de pas�:"
@@ -126,7 +126,7 @@
 msgstr ""
 
 msgid "Delete Account"
-msgstr ""
+msgstr "Suprimir lo compte"
 
 #. Delete button
 msgid "Delete"
@@ -207,7 +207,7 @@
 msgstr ""
 
 msgid "Add in group"
-msgstr ""
+msgstr "Apondre al grop"
 
 msgid "Account"
 msgstr "Compte"
@@ -219,7 +219,7 @@
 msgstr ""
 
 msgid "Chats"
-msgstr ""
+msgstr "Charradissas"
 
 #. Extract their Name and put it in
 msgid "Name"
@@ -259,7 +259,7 @@
 msgstr ""
 
 msgid "Edit"
-msgstr "Edicion"
+msgstr "Modificar"
 
 msgid "Edit Settings"
 msgstr ""
@@ -277,10 +277,10 @@
 msgstr ""
 
 msgid "Send File"
-msgstr "_Enviar un fichi竪r"
+msgstr "Mandar un fichi竪r"
 
 msgid "Blocked"
-msgstr ""
+msgstr "Blocat"
 
 msgid "Show when offline"
 msgstr ""
@@ -344,19 +344,19 @@
 msgstr "Nov竪l..."
 
 msgid "Saved..."
-msgstr ""
+msgstr "Enregistrats..."
 
 msgid "Plugins"
 msgstr "Ajustons"
 
 msgid "Block/Unblock"
-msgstr ""
+msgstr "Blocar/desblocar"
 
 msgid "Block"
-msgstr ""
+msgstr "Blocar"
 
 msgid "Unblock"
-msgstr ""
+msgstr "Desblocar"
 
 msgid ""
 "Please enter the username or alias of the person you would like to Block/"
@@ -385,7 +385,7 @@
 msgstr ""
 
 msgid "Join"
-msgstr ""
+msgstr "J坦nher"
 
 msgid ""
 "Please enter the username or alias of the person whose log you would like to "
@@ -400,7 +400,7 @@
 msgstr ""
 
 msgid "Block/Unblock..."
-msgstr ""
+msgstr "Blocar/desblocar..."
 
 msgid "Join Chat..."
 msgstr ""
@@ -418,7 +418,7 @@
 msgstr ""
 
 msgid "Offline buddies"
-msgstr ""
+msgstr "Los contactes desconnectats"
 
 msgid "Sort"
 msgstr "Ordenar"
@@ -436,7 +436,7 @@
 msgstr ""
 
 msgid "Chat"
-msgstr "Chad"
+msgstr "Charradissa"
 
 msgid "Grouping"
 msgstr ""
@@ -590,7 +590,7 @@
 msgstr ""
 
 msgid "Conversation"
-msgstr ""
+msgstr "Charradissa"
 
 msgid "Clear Scrollback"
 msgstr ""
@@ -601,9 +601,8 @@
 msgid "Add Buddy Pounce..."
 msgstr ""
 
-#, fuzzy
 msgid "Invite..."
-msgstr "Convidar"
+msgstr "Convidar..."
 
 msgid "Enable Logging"
 msgstr ""
@@ -711,15 +710,15 @@
 msgid "Pause"
 msgstr "Pausa"
 
-#, fuzzy, c-format
+#, c-format
 msgid "File Transfers - %d%% of %d file"
 msgid_plural "File Transfers - %d%% of %d files"
-msgstr[0] "Transferriment de fichi竪rs"
-msgstr[1] "Transferriment de fichi竪rs"
+msgstr[0] ""
+msgstr[1] ""
 
 #. Create the window.
 msgid "File Transfers"
-msgstr "Transferriment de fichi竪rs"
+msgstr "Transferiment de fichi竪rs"
 
 msgid "Progress"
 msgstr "Avan巽ament"
@@ -763,9 +762,8 @@
 msgid "%.2f KiB/s"
 msgstr "%.2f ko/s"
 
-#, fuzzy
 msgid "Sent"
-msgstr "Definir"
+msgstr "Mandat"
 
 msgid "Received"
 msgstr ""
@@ -777,9 +775,8 @@
 msgid "The file was saved as %s."
 msgstr ""
 
-#, fuzzy
 msgid "Sending"
-msgstr "Segondas"
+msgstr "A mandar"
 
 msgid "Receiving"
 msgstr ""
@@ -828,14 +825,13 @@
 msgstr ""
 
 msgid "All Conversations"
-msgstr ""
+msgstr "Totas las charradissas"
 
 msgid "System Log"
 msgstr ""
 
-#, fuzzy
 msgid "Calling..."
-msgstr "A calcular..."
+msgstr ""
 
 msgid "Hangup"
 msgstr ""
@@ -910,9 +906,8 @@
 #. XXX: The following expects that finch_notify_message gets called. This
 #. * may not always happen, e.g. when another plugin sets its own
 #. * notify_message. So tread carefully.
-#, fuzzy
 msgid "URI"
-msgstr "URL"
+msgstr "URI"
 
 msgid "ERROR"
 msgstr "ERROR"
@@ -1033,7 +1028,7 @@
 msgstr ""
 
 msgid "Send a message"
-msgstr ""
+msgstr "Mandar un messatge"
 
 msgid "Execute a command"
 msgstr ""
@@ -1167,7 +1162,7 @@
 msgstr ""
 
 msgid "Open File..."
-msgstr ""
+msgstr "Dobrir un fichi竪r..."
 
 msgid "Choose Location..."
 msgstr ""
@@ -1212,9 +1207,8 @@
 msgid "Someone says your username in chat"
 msgstr ""
 
-#, fuzzy
 msgid "Attention received"
-msgstr "L'autentificacion a abocat"
+msgstr ""
 
 msgid "GStreamer Failure"
 msgstr ""
@@ -1311,7 +1305,7 @@
 msgstr "T鱈tol"
 
 msgid "Type"
-msgstr "Tipe"
+msgstr "Mena"
 
 #. Statuses are almost all the same. Define a macro to reduce code repetition.
 #. PurpleStatusPrimitive
@@ -1482,9 +1476,8 @@
 msgid "TinyURL (or other) address prefix"
 msgstr ""
 
-#, fuzzy
 msgid "TinyURL"
-msgstr "URL"
+msgstr "TinyURL"
 
 msgid "TinyURL plugin"
 msgstr ""
@@ -1503,7 +1496,7 @@
 msgstr ""
 
 msgid "Offline Buddies"
-msgstr ""
+msgstr "Contactes desconnectats"
 
 msgid "Online/Offline"
 msgstr ""
@@ -1598,7 +1591,7 @@
 msgstr "Desconegut"
 
 msgid "Buddies"
-msgstr ""
+msgstr "Contactes"
 
 msgid "buddy list"
 msgstr ""
@@ -1745,10 +1738,10 @@
 msgstr ""
 
 msgid "Send Message"
-msgstr "Enviar un messatge"
+msgstr "Mandar un messatge"
 
 msgid "_Send Message"
-msgstr "_Enviar un messatge"
+msgstr "_Mandar un messatge"
 
 #, c-format
 msgid "%s entered the room."
@@ -1774,9 +1767,8 @@
 msgid "%s left the room (%s)."
 msgstr ""
 
-#, fuzzy
 msgid "Invite to chat"
-msgstr "Convidar"
+msgstr "Convidar a una charradissa"
 
 #. Put our happy label in it.
 msgid ""
@@ -1837,7 +1829,7 @@
 msgstr ""
 
 msgid "Unknown reason"
-msgstr "Rason desconeguda"
+msgstr ""
 
 #, c-format
 msgid ""
@@ -1926,9 +1918,9 @@
 msgid "File transfer cancelled"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "%s cancelled the transfer of %s"
-msgstr "%s a chang辿 son 辿tat de %s en %s."
+msgstr ""
 
 #, c-format
 msgid "%s cancelled the file transfer"
@@ -2121,9 +2113,8 @@
 msgid "Error with your webcam"
 msgstr ""
 
-#, fuzzy
 msgid "Conference error"
-msgstr "Error de connexion"
+msgstr ""
 
 #, c-format
 msgid "Error creating session: %s"
@@ -2189,13 +2180,13 @@
 msgstr ""
 
 msgid "_Save"
-msgstr "_Enregistrar"
+msgstr "Enregi_strar"
 
 msgid "_Cancel"
 msgstr "_Anullar"
 
 msgid "Ask"
-msgstr ""
+msgstr "Demandar"
 
 msgid "Auto Accept"
 msgstr ""
@@ -2212,7 +2203,9 @@
 "(Please provide the full path)"
 msgstr ""
 
-msgid "Automatically reject from users not in buddy list"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
 msgstr ""
 
 msgid ""
@@ -2223,6 +2216,9 @@
 msgid "Create a new directory for each user"
 msgstr ""
 
+msgid "Escape the filenames"
+msgstr ""
+
 msgid "Notes"
 msgstr "N嘆tas"
 
@@ -2462,7 +2458,7 @@
 #. translators who wanted to transliterate them.  Many translators
 #. choose to leave them alone.  Choose what's best for your language.
 msgid "QIP"
-msgstr ""
+msgstr "QIP"
 
 #. The names of IM clients are marked for translation at the request of
 #. translators who wanted to transliterate them.  Many translators
@@ -2474,13 +2470,13 @@
 #. translators who wanted to transliterate them.  Many translators
 #. choose to leave them alone.  Choose what's best for your language.
 msgid "Trillian"
-msgstr ""
+msgstr "Trillian"
 
 #. The names of IM clients are marked for translation at the request of
 #. translators who wanted to transliterate them.  Many translators
 #. choose to leave them alone.  Choose what's best for your language.
 msgid "aMSN"
-msgstr ""
+msgstr "aMSN"
 
 #. Add general preferences.
 msgid "General Log Reading Configuration"
@@ -2573,7 +2569,7 @@
 msgstr ""
 
 msgid "Offline Message"
-msgstr ""
+msgstr "Messatge desconnectat"
 
 msgid "You can edit/delete the pounce from the `Buddy Pounces' dialog"
 msgstr ""
@@ -2590,9 +2586,8 @@
 msgid "Do not ask. Always save in pounce."
 msgstr ""
 
-#, fuzzy
 msgid "One Time Password"
-msgstr "Picatz lo mot de pas"
+msgstr ""
 
 #. *< type
 #. *< ui_requirement
@@ -2700,7 +2695,7 @@
 #. *< priority
 #. *< id
 msgid "GNUTLS"
-msgstr ""
+msgstr "GNUTLS"
 
 #. *< name
 #. *< version
@@ -2716,7 +2711,7 @@
 #. *< priority
 #. *< id
 msgid "NSS"
-msgstr ""
+msgstr "NSS"
 
 #. *< name
 #. *< version
@@ -2851,7 +2846,7 @@
 msgstr ""
 
 msgid "Bonjour"
-msgstr ""
+msgstr "Bonjour"
 
 #, c-format
 msgid "%s has closed the conversation."
@@ -2908,9 +2903,8 @@
 msgid "You must fill in all registration fields"
 msgstr ""
 
-#, fuzzy
 msgid "Passwords do not match"
-msgstr "Los mots de pas son pas los meteisses."
+msgstr "Los mots de pas son pas los meteisses"
 
 msgid "Unable to register new account.  An unknown error occurred."
 msgstr ""
@@ -2930,9 +2924,8 @@
 msgid "Enter captcha text"
 msgstr ""
 
-#, fuzzy
 msgid "Captcha"
-msgstr "Enregistrar l'imatge"
+msgstr "Captcha"
 
 msgid "Register New Gadu-Gadu Account"
 msgstr ""
@@ -3031,7 +3024,7 @@
 msgstr "Absent(a)"
 
 msgid "UIN"
-msgstr ""
+msgstr "UIN"
 
 #. first name
 #. purple_notify_user_info_add_pair( info, _( "Hidden Number" ), profile->hidden ? _( "Yes" ) : _( "No" ) );
@@ -3088,9 +3081,9 @@
 msgid "Chat _name:"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to resolve hostname '%s': %s"
-msgstr "Impossible de dobrir le fichi竪r '%s' : %s"
+msgstr ""
 
 #. 1. connect to server
 #. connect to the server
@@ -3103,9 +3096,8 @@
 msgid "This chat name is already in use"
 msgstr ""
 
-#, fuzzy
 msgid "Not connected to the server"
-msgstr "Connectat"
+msgstr "S竪tz pas connectat al servidor"
 
 msgid "Find buddies..."
 msgstr ""
@@ -3146,9 +3138,8 @@
 msgid "Gadu-Gadu User"
 msgstr ""
 
-#, fuzzy
 msgid "GG server"
-msgstr "Connectat"
+msgstr "Servidor GG"
 
 #, c-format
 msgid "Unknown command: %s"
@@ -3187,9 +3178,9 @@
 #.
 #. TODO: what to do here - do we really have to disconnect?
 #. TODO: do we really want to disconnect on a failure to write?
-#, fuzzy, c-format
+#, c-format
 msgid "Lost connection with server: %s"
-msgstr "Connectat"
+msgstr ""
 
 msgid "View MOTD"
 msgstr ""
@@ -3270,9 +3261,9 @@
 msgid "Ban on %s by %s, set %s ago"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Ban on %s"
-msgstr "Rason : %s"
+msgstr ""
 
 msgid "End of ban list"
 msgstr ""
@@ -3289,10 +3280,10 @@
 msgstr ""
 
 msgid " <i>(ircop)</i>"
-msgstr ""
+msgstr " <i>(ircop)</i>"
 
 msgid " <i>(identified)</i>"
-msgstr ""
+msgstr " <i>(identificat)</i>"
 
 msgid "Nick"
 msgstr "Escais"
@@ -3400,9 +3391,8 @@
 msgid "The nickname \"%s\" is already being used."
 msgstr ""
 
-#, fuzzy
 msgid "Nickname in use"
-msgstr "Escais"
+msgstr ""
 
 msgid "Cannot change nick"
 msgstr ""
@@ -3585,7 +3575,7 @@
 msgstr ""
 
 msgid "PONG"
-msgstr ""
+msgstr "PONG"
 
 msgid "CTCP PING reply"
 msgstr ""
@@ -3605,7 +3595,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr ""
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr ""
 
@@ -3639,17 +3632,15 @@
 "Allow this and continue authentication?"
 msgstr ""
 
-#, fuzzy
 msgid "SASL authentication failed"
-msgstr "L'autentificacion a abocat"
+msgstr ""
 
 #, c-format
 msgid "SASL error: %s"
 msgstr ""
 
-#, fuzzy
 msgid "Invalid Encoding"
-msgstr "L'expression es pas valida"
+msgstr ""
 
 msgid "Unsupported Extension"
 msgstr ""
@@ -3673,16 +3664,14 @@
 msgid "User not found"
 msgstr "Utilizaire pas trobat"
 
-#, fuzzy
 msgid "Invalid Username Encoding"
-msgstr "L'expression es pas valida"
+msgstr ""
 
 msgid "Resource Constraint"
 msgstr ""
 
-#, fuzzy
 msgid "Unable to canonicalize username"
-msgstr "Activat"
+msgstr ""
 
 msgid "Unable to canonicalize password"
 msgstr ""
@@ -3705,9 +3694,9 @@
 msgid "Unable to establish a connection with the server"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to establish a connection with the server: %s"
-msgstr "Connectat"
+msgstr ""
 
 msgid "Unable to establish SSL connection"
 msgstr ""
@@ -3746,7 +3735,7 @@
 
 #. purple_notify_user_info_add_pair( info, _( "Email" ), profile->email );
 msgid "Country"
-msgstr "Pa鱈s"
+msgstr "Pa誰s"
 
 #. lots of clients (including purple) do this, but it's
 #. * out of spec
@@ -3782,14 +3771,13 @@
 msgstr ""
 
 msgid "Client"
-msgstr ""
+msgstr "Client"
 
 msgid "Operating System"
 msgstr "Sist竪ma d'explotacion"
 
-#, fuzzy
 msgid "Local Time"
-msgstr "Fichi竪r local :"
+msgstr "Ora locala"
 
 msgid "Priority"
 msgstr "Prioritat"
@@ -3797,16 +3785,15 @@
 msgid "Resource"
 msgstr "Ressorga"
 
-#, fuzzy
 msgid "Uptime"
-msgstr "Data"
+msgstr ""
 
 msgid "Logged Off"
 msgstr ""
 
 #, c-format
 msgid "%s ago"
-msgstr ""
+msgstr "%s i a"
 
 msgid "Middle Name"
 msgstr ""
@@ -3850,7 +3837,7 @@
 msgstr ""
 
 msgid "Log In"
-msgstr ""
+msgstr "Connexion"
 
 msgid "Log Out"
 msgstr "Desconnectar"
@@ -3860,7 +3847,7 @@
 
 #. last name
 msgid "Last Name"
-msgstr "Nom"
+msgstr ""
 
 msgid "The following are the results of your search"
 msgstr ""
@@ -3971,17 +3958,14 @@
 msgid "Find Rooms"
 msgstr ""
 
-#, fuzzy
 msgid "Affiliations:"
-msgstr "Ali�s :"
-
-#, fuzzy
+msgstr ""
+
 msgid "No users found"
-msgstr "Utilizaire pas trobat"
-
-#, fuzzy
+msgstr ""
+
 msgid "Roles:"
-msgstr "R嘆tle"
+msgstr "R嘆tles :"
 
 msgid "Server requires TLS/SSL, but no TLS/SSL support was found."
 msgstr ""
@@ -3989,9 +3973,8 @@
 msgid "You require encryption, but no TLS/SSL support was found."
 msgstr ""
 
-#, fuzzy
 msgid "Ping timed out"
-msgstr "Connectat"
+msgstr ""
 
 msgid "Invalid XMPP ID"
 msgstr ""
@@ -4030,7 +4013,7 @@
 msgstr ""
 
 msgid "State"
-msgstr "Estat"
+msgstr ""
 
 msgid "Postal code"
 msgstr ""
@@ -4058,7 +4041,7 @@
 msgstr ""
 
 msgid "Register"
-msgstr "Enregistrar"
+msgstr "S'enregistrar"
 
 #, c-format
 msgid "Change Account Registration at %s"
@@ -4111,7 +4094,7 @@
 msgstr "De"
 
 msgid "To"
-msgstr "A"
+msgstr "Destinacion"
 
 msgid "None (To pending)"
 msgstr ""
@@ -4129,13 +4112,11 @@
 msgid "Allow Buzz"
 msgstr ""
 
-#, fuzzy
 msgid "Mood Name"
-msgstr "Nom de grop"
-
-#, fuzzy
+msgstr ""
+
 msgid "Mood Comment"
-msgstr "Entresenhas"
+msgstr ""
 
 #. primitive
 #. ID
@@ -4407,9 +4388,8 @@
 msgid "Unable to initiate media with %s: not subscribed to user presence"
 msgstr ""
 
-#, fuzzy
 msgid "Media Initiation Failed"
-msgstr "L'autentificacion a abocat"
+msgstr ""
 
 #, c-format
 msgid ""
@@ -4505,9 +4485,8 @@
 msgid "Use old-style SSL"
 msgstr ""
 
-#, fuzzy
 msgid "Connection security"
-msgstr "Connexion perduda"
+msgstr ""
 
 msgid "Allow plaintext auth over unencrypted streams"
 msgstr ""
@@ -4525,7 +4504,7 @@
 msgstr ""
 
 msgid "BOSH URL"
-msgstr ""
+msgstr "URL BOSH"
 
 #. this should probably be part of global smiley theme settings later on,
 #. shared with MSN
@@ -4538,7 +4517,7 @@
 
 #, c-format
 msgid "Message from %s"
-msgstr "Messatge de %s"
+msgstr ""
 
 #, c-format
 msgid "%s has set the topic to: %s"
@@ -4596,9 +4575,8 @@
 msgid "_Accept Defaults"
 msgstr ""
 
-#, fuzzy
 msgid "No reason"
-msgstr "Rason desconeguda"
+msgstr "Pas de rason"
 
 #, c-format
 msgid "You have been kicked: (%s)"
@@ -4634,23 +4612,20 @@
 msgid "Please select the resource of %s to which you would like to send a file"
 msgstr ""
 
-#, fuzzy
 msgid "Afraid"
 msgstr "Arab"
 
-#, fuzzy
 msgid "Amazed"
-msgstr "Animar"
+msgstr ""
 
 msgid "Amorous"
 msgstr ""
 
 msgid "Angry"
-msgstr ""
-
-#, fuzzy
+msgstr "Encolerat"
+
 msgid "Annoyed"
-msgstr "Qual que si叩"
+msgstr ""
 
 msgid "Anxious"
 msgstr ""
@@ -4664,73 +4639,59 @@
 msgid "Bored"
 msgstr ""
 
-#, fuzzy
 msgid "Brave"
-msgstr "Enregistrar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Calm"
-msgstr "Anullar"
+msgstr ""
 
 msgid "Cautious"
 msgstr ""
 
-#, fuzzy
 msgid "Cold"
-msgstr "Gras"
-
-#, fuzzy
+msgstr ""
+
 msgid "Confident"
-msgstr "Se connectar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Confused"
-msgstr "Contunhar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Contemplative"
-msgstr "Se connectar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Contented"
-msgstr "Connectat"
-
-#, fuzzy
+msgstr ""
+
 msgid "Cranky"
-msgstr "Entrepresa"
+msgstr ""
 
 msgid "Crazy"
 msgstr ""
 
-#, fuzzy
 msgid "Creative"
-msgstr "Crear"
+msgstr ""
 
 msgid "Curious"
 msgstr ""
 
-#, fuzzy
 msgid "Dejected"
-msgstr "executar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Depressed"
-msgstr "Suprimir"
-
-#, fuzzy
+msgstr ""
+
 msgid "Disappointed"
-msgstr "_Desactivar"
+msgstr ""
 
 msgid "Disgusted"
 msgstr ""
 
-#, fuzzy
 msgid "Dismayed"
-msgstr "_Desactivar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Distracted"
-msgstr "_Desactivar"
+msgstr ""
 
 msgid "Embarrassed"
 msgstr ""
@@ -4744,9 +4705,8 @@
 msgid "Flirtatious"
 msgstr ""
 
-#, fuzzy
 msgid "Frustrated"
-msgstr "Pichon nom"
+msgstr ""
 
 msgid "Grateful"
 msgstr ""
@@ -4754,13 +4714,11 @@
 msgid "Grieving"
 msgstr ""
 
-#, fuzzy
 msgid "Grumpy"
-msgstr "Grop"
-
-#, fuzzy
+msgstr ""
+
 msgid "Guilty"
-msgstr "Ciutat"
+msgstr ""
 
 msgid "Happy"
 msgstr ""
@@ -4768,9 +4726,8 @@
 msgid "Hopeful"
 msgstr ""
 
-#, fuzzy
 msgid "Hot"
-msgstr "_�ste :"
+msgstr "Caud"
 
 msgid "Humbled"
 msgstr ""
@@ -4778,9 +4735,8 @@
 msgid "Humiliated"
 msgstr ""
 
-#, fuzzy
 msgid "Hungry"
-msgstr "Ongr辿s"
+msgstr ""
 
 msgid "Hurt"
 msgstr ""
@@ -4794,17 +4750,14 @@
 msgid "In love"
 msgstr ""
 
-#, fuzzy
 msgid "Indignant"
-msgstr "Indonesian"
-
-#, fuzzy
+msgstr ""
+
 msgid "Interested"
-msgstr "Interfa巽"
-
-#, fuzzy
+msgstr "Interessat"
+
 msgid "Intoxicated"
-msgstr "Convidar"
+msgstr ""
 
 msgid "Invincible"
 msgstr ""
@@ -4812,62 +4765,50 @@
 msgid "Jealous"
 msgstr ""
 
-#, fuzzy
 msgid "Lonely"
-msgstr "Pas cap"
-
-#, fuzzy
+msgstr "Sol"
+
 msgid "Lost"
-msgstr "_�ste :"
+msgstr "�_ste :"
 
 msgid "Lucky"
 msgstr ""
 
-#, fuzzy
 msgid "Mean"
-msgstr "Aleman"
-
-#, fuzzy
+msgstr ""
+
 msgid "Moody"
-msgstr "Modificar"
+msgstr ""
 
 msgid "Nervous"
 msgstr ""
 
-#, fuzzy
 msgid "Neutral"
-msgstr "Defaut"
-
-#, fuzzy
+msgstr "Neutre"
+
 msgid "Offended"
-msgstr "Desconnectat"
+msgstr ""
 
 msgid "Outraged"
 msgstr ""
 
-#, fuzzy
 msgid "Playful"
-msgstr "Legir"
-
-#, fuzzy
+msgstr ""
+
 msgid "Proud"
-msgstr "Grop"
-
-#, fuzzy
+msgstr ""
+
 msgid "Relaxed"
-msgstr "Renommar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Relieved"
-msgstr "Suprimir"
-
-#, fuzzy
+msgstr ""
+
 msgid "Remorseful"
-msgstr "Suprimir"
-
-#, fuzzy
+msgstr ""
+
 msgid "Restless"
-msgstr "Enregistrar"
+msgstr ""
 
 msgid "Sad"
 msgstr ""
@@ -4878,9 +4819,8 @@
 msgid "Satisfied"
 msgstr ""
 
-#, fuzzy
 msgid "Serious"
-msgstr "Sons"
+msgstr ""
 
 msgid "Shocked"
 msgstr ""
@@ -4888,9 +4828,8 @@
 msgid "Shy"
 msgstr ""
 
-#, fuzzy
 msgid "Sick"
-msgstr "Escais"
+msgstr "Malaut"
 
 #. Sleepy / Tired
 msgid "Sleepy"
@@ -4899,13 +4838,11 @@
 msgid "Spontaneous"
 msgstr ""
 
-#, fuzzy
 msgid "Stressed"
-msgstr "Velocitat :"
-
-#, fuzzy
+msgstr ""
+
 msgid "Strong"
-msgstr "Arrestar"
+msgstr ""
 
 msgid "Surprised"
 msgstr ""
@@ -4916,13 +4853,11 @@
 msgid "Thirsty"
 msgstr ""
 
-#, fuzzy
 msgid "Tired"
-msgstr "Firebird"
-
-#, fuzzy
+msgstr "Las"
+
 msgid "Undefined"
-msgstr "Soslinhat"
+msgstr ""
 
 msgid "Weak"
 msgstr ""
@@ -4984,9 +4919,8 @@
 msgid "Already logged in"
 msgstr ""
 
-#, fuzzy
 msgid "Invalid username"
-msgstr "L'expression es pas valida"
+msgstr ""
 
 msgid "Invalid friendly name"
 msgstr ""
@@ -5190,9 +5124,8 @@
 msgid "Nudging %s..."
 msgstr ""
 
-#, fuzzy
 msgid "Email Address..."
-msgstr "Adre巽a electronica"
+msgstr "Adre巽a electronica..."
 
 msgid "Your new MSN friendly name is too long."
 msgstr ""
@@ -5201,23 +5134,20 @@
 msgid "Set friendly name for %s."
 msgstr ""
 
-#, fuzzy
 msgid "Set Friendly Name"
-msgstr "Nom d'ostal"
+msgstr ""
 
 msgid "This is the name that other MSN buddies will see you as."
 msgstr ""
 
-#, fuzzy
 msgid "This Location"
-msgstr "Empla巽ament"
+msgstr ""
 
 msgid "This is the name that identifies this location"
 msgstr ""
 
-#, fuzzy
 msgid "Other Locations"
-msgstr "Empla巽ament"
+msgstr "Autres empla巽aments"
 
 msgid "You can sign out from other locations here"
 msgstr ""
@@ -5286,9 +5216,8 @@
 msgid "Playing a game"
 msgstr ""
 
-#, fuzzy
 msgid "Working"
-msgstr "Professional"
+msgstr ""
 
 msgid "Has you"
 msgstr ""
@@ -5314,9 +5243,8 @@
 msgid "Out to Lunch"
 msgstr ""
 
-#, fuzzy
 msgid "Game Title"
-msgstr "T鱈tol"
+msgstr ""
 
 msgid "Office Title"
 msgstr ""
@@ -5324,9 +5252,8 @@
 msgid "Set Friendly Name..."
 msgstr ""
 
-#, fuzzy
 msgid "View Locations..."
-msgstr "Empla巽ament"
+msgstr ""
 
 msgid "Set Home Phone Number..."
 msgstr ""
@@ -5364,9 +5291,8 @@
 "be valid email addresses."
 msgstr ""
 
-#, fuzzy
 msgid "Unable to Add"
-msgstr "Activat"
+msgstr ""
 
 msgid "Authorization Request Message:"
 msgstr ""
@@ -5435,7 +5361,7 @@
 msgstr ""
 
 msgid "Personal"
-msgstr "Terminal"
+msgstr "Personal"
 
 msgid "Significant Other"
 msgstr ""
@@ -5466,7 +5392,7 @@
 
 #. Business
 msgid "Work"
-msgstr "Professional"
+msgstr ""
 
 msgid "Company"
 msgstr "Entrepresa"
@@ -5569,9 +5495,9 @@
 msgid "The following users are missing from your addressbook"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unknown error (%d): %s"
-msgstr "Error desconeguda"
+msgstr ""
 
 msgid "Unable to add user"
 msgstr ""
@@ -5581,9 +5507,8 @@
 msgid "Unknown error (%d)"
 msgstr ""
 
-#, fuzzy
 msgid "Unable to remove user"
-msgstr "Activat"
+msgstr ""
 
 msgid "Mobile message was not sent because it was too long."
 msgstr ""
@@ -5735,9 +5660,8 @@
 msgid "The PIN is invalid. It should only consist of digits [0-9]."
 msgstr ""
 
-#, fuzzy
 msgid "The two PINs you entered do not match."
-msgstr "Los mots de pas son pas los meteisses."
+msgstr ""
 
 msgid "The Display Name you entered is invalid."
 msgstr ""
@@ -5771,16 +5695,14 @@
 
 #. display name
 #. nick name (required)
-#, fuzzy
 msgid "Display Name"
-msgstr "Nom d'ostal"
+msgstr ""
 
 #. hidden
 msgid "Hide my number"
 msgstr ""
 
 #. mobile number
-#, fuzzy
 msgid "Mobile Number"
 msgstr "Telef嘆n mobil"
 
@@ -5796,9 +5718,8 @@
 msgid "There is no splash-screen currently available"
 msgstr ""
 
-#, fuzzy
 msgid "About"
-msgstr "A prepaus de %s"
+msgstr "A prepaus"
 
 #. display / change profile
 msgid "Change Profile..."
@@ -5809,9 +5730,8 @@
 msgstr ""
 
 #. display plugin version
-#, fuzzy
 msgid "About..."
-msgstr "A prepaus de %s"
+msgstr "A prepaus..."
 
 #. the file is too big
 msgid "The file you are trying to send is too large!"
@@ -5828,9 +5748,8 @@
 "Unable to connect to the MXit server. Please check your server settings."
 msgstr ""
 
-#, fuzzy
 msgid "Connecting..."
-msgstr "Connexion"
+msgstr "Connexion..."
 
 msgid "The PIN you entered has an invalid length [7-10]."
 msgstr ""
@@ -5881,59 +5800,23 @@
 msgstr ""
 
 #. ask for input (required)
-#, fuzzy
 msgid "Enter Security Code"
-msgstr "Picatz lo mot de pas"
-
-#, fuzzy
+msgstr ""
+
 msgid "Your Country"
-msgstr "Pa鱈s"
+msgstr "V嘆stre pa誰s"
 
 msgid "Your Language"
 msgstr ""
 
 #. display the form to the user and wait for his/her input
-#, fuzzy
 msgid "MXit Authorization"
-msgstr "Autorizar"
+msgstr ""
 
 msgid "MXit account validation"
 msgstr ""
 
-#, fuzzy
 msgid "Retrieving User Information..."
-msgstr "Entresenhas sul servidor"
-
-msgid "Loading menu..."
-msgstr ""
-
-#, fuzzy
-msgid "Status Message"
-msgstr "Messatges enviats"
-
-#, fuzzy
-msgid "Rejection Message"
-msgstr "Enviar un messatge"
-
-#. hidden number
-#, fuzzy
-msgid "Hidden Number"
-msgstr "L'expression es pas valida"
-
-msgid "Your MXit ID..."
-msgstr ""
-
-#. Configuration options
-#. WAP server (reference: "libpurple/accountopt.h")
-#, fuzzy
-msgid "WAP Server"
-msgstr "Servidor"
-
-#, fuzzy
-msgid "Connect via HTTP"
-msgstr "Se connectar"
-
-msgid "Enable splash-screen popup"
 msgstr ""
 
 #. you were kicked
@@ -5943,7 +5826,6 @@
 msgid "was kicked"
 msgstr ""
 
-#, fuzzy
 msgid "_Room Name:"
 msgstr "_Sala :"
 
@@ -5951,18 +5833,43 @@
 msgid "You have invited"
 msgstr ""
 
-#, fuzzy
+msgid "Loading menu..."
+msgstr ""
+
+msgid "Status Message"
+msgstr ""
+
+msgid "Rejection Message"
+msgstr ""
+
+#. hidden number
+msgid "Hidden Number"
+msgstr ""
+
+msgid "Your MXit ID..."
+msgstr ""
+
+#. Configuration options
+#. WAP server (reference: "libpurple/accountopt.h")
+msgid "WAP Server"
+msgstr "Servidor WAP"
+
+msgid "Connect via HTTP"
+msgstr ""
+
+msgid "Enable splash-screen popup"
+msgstr ""
+
 msgid "Last Online"
-msgstr "En linha"
+msgstr ""
 
 #. we must have lost the connection, so terminate it so that we can reconnect
 msgid "We have lost the connection to MXit. Please reconnect."
 msgstr ""
 
 #. packet could not be queued for transmission
-#, fuzzy
 msgid "Message Send Error"
-msgstr "Messatge de %s"
+msgstr ""
 
 msgid "Unable to process your request at this time"
 msgstr ""
@@ -5970,18 +5877,16 @@
 msgid "Timeout while waiting for a response from the MXit server."
 msgstr ""
 
-#, fuzzy
 msgid "Successfully Logged In..."
-msgstr "Entresenhas sus l'utilizaire"
+msgstr ""
 
 #, c-format
 msgid ""
 "%s sent you an encrypted message, but it is not supported on this client."
 msgstr ""
 
-#, fuzzy
 msgid "Message Error"
-msgstr "Messatge de %s"
+msgstr ""
 
 msgid "Cannot perform redirect using the specified protocol"
 msgstr ""
@@ -5997,38 +5902,30 @@
 msgid "Logout error: %s (%i)"
 msgstr ""
 
-#, fuzzy
 msgid "Contact Error"
-msgstr "Error de connexion"
+msgstr ""
 
 msgid "Message Sending Error"
 msgstr ""
 
-#, fuzzy
 msgid "Status Error"
-msgstr "Estatut"
-
-#, fuzzy
+msgstr ""
+
 msgid "Mood Error"
-msgstr "Error"
-
-#, fuzzy
+msgstr ""
+
 msgid "Invitation Error"
-msgstr "Error de connexion"
-
-#, fuzzy
+msgstr ""
+
 msgid "Contact Removal Error"
-msgstr "Error de connexion"
-
-#, fuzzy
+msgstr ""
+
 msgid "Subscription Error"
-msgstr "Error de connexion"
-
-#, fuzzy
+msgstr ""
+
 msgid "Contact Update Error"
-msgstr "Error de connexion"
-
-#, fuzzy
+msgstr ""
+
 msgid "File Transfer Error"
 msgstr "Transferiment de fichi竪r"
 
@@ -6038,9 +5935,8 @@
 msgid "MultiMx Invitation Error"
 msgstr ""
 
-#, fuzzy
 msgid "Profile Error"
-msgstr "Perfil"
+msgstr "Error de perfil"
 
 #. bad packet
 msgid "Invalid packet received from MXit."
@@ -6072,28 +5968,23 @@
 msgid "In Love"
 msgstr ""
 
-#, fuzzy
 msgid "Pending"
-msgstr "Segondas"
-
-#, fuzzy
+msgstr ""
+
 msgid "Invited"
-msgstr "Convidar"
-
-#, fuzzy
+msgstr "Convidat"
+
 msgid "Rejected"
-msgstr "executar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Deleted"
-msgstr "Suprimir"
+msgstr "Suprimit"
 
 msgid "MXit Advertising"
 msgstr ""
 
-#, fuzzy
 msgid "More Information"
-msgstr "Entresenhas"
+msgstr ""
 
 #, c-format
 msgid "No such user: %s"
@@ -6120,9 +6011,8 @@
 msgid "Would you like to set one now? (Note: THIS CANNOT BE CHANGED!)"
 msgstr ""
 
-#, fuzzy
 msgid "Lost connection with server"
-msgstr "Connectat"
+msgstr ""
 
 #. Can't write _()'d strings in array initializers. Workaround.
 #. khc: then use N_() in the array initializer and use _() when they are
@@ -6143,7 +6033,7 @@
 msgstr ""
 
 msgid "MySpace"
-msgstr ""
+msgstr "MySpace"
 
 msgid "IM Friends"
 msgstr ""
@@ -6254,7 +6144,7 @@
 msgstr ""
 
 msgid "Song"
-msgstr ""
+msgstr "Can巽on"
 
 msgid "Total Friends"
 msgstr ""
@@ -6519,9 +6409,9 @@
 msgid "Unknown error: 0x%X"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to login: %s"
-msgstr "Activat"
+msgstr ""
 
 #, c-format
 msgid "Unable to send message. Could not get details for user (%s)."
@@ -6769,43 +6659,39 @@
 msgid "Bot account reached monthly IM limit"
 msgstr ""
 
-#, fuzzy
 msgid "Unable to receive offline messages"
-msgstr "Impossible de dobrir le fichi竪r '%s' : %s"
+msgstr ""
 
 msgid "Offline message store full"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to send message: %s (%s)"
-msgstr "Impossible de dobrir le fichi竪r '%s' : %s"
+msgstr ""
 
 #, c-format
 msgid "Unable to send message: %s"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to send message to %s: %s (%s)"
-msgstr "Impossible de dobrir le fichi竪r '%s' : %s"
-
-#, fuzzy, c-format
+msgstr ""
+
+#, c-format
 msgid "Unable to send message to %s: %s"
-msgstr "Impossible de dobrir le fichi竪r '%s' : %s"
+msgstr ""
 
 msgid "Thinking"
 msgstr ""
 
-#, fuzzy
 msgid "Shopping"
-msgstr "S'arr竪sta de picar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Questioning"
-msgstr "Estonian"
-
-#, fuzzy
+msgstr ""
+
 msgid "Eating"
-msgstr "Al竪rta"
+msgstr "A manjar"
 
 msgid "Watching a movie"
 msgstr ""
@@ -6825,9 +6711,8 @@
 msgid "Having fun"
 msgstr ""
 
-#, fuzzy
 msgid "Sleeping"
-msgstr "Segondas"
+msgstr "A dormir"
 
 msgid "Using a PDA"
 msgstr ""
@@ -6855,39 +6740,33 @@
 msgstr ""
 
 #. Playing video games
-#, fuzzy
 msgid "Gaming"
-msgstr "Al竪rta"
+msgstr ""
 
 msgid "Browsing the web"
 msgstr ""
 
-#, fuzzy
 msgid "Smoking"
-msgstr "Professional"
-
-#, fuzzy
+msgstr ""
+
 msgid "Writing"
-msgstr "Professional"
+msgstr ""
 
 #. Drinking [Alcohol]
-#, fuzzy
 msgid "Drinking"
-msgstr "Professional"
+msgstr ""
 
 msgid "Listening to music"
 msgstr ""
 
-#, fuzzy
 msgid "Studying"
-msgstr "Segondas"
+msgstr "A estudiar"
 
 msgid "In the restroom"
 msgstr ""
 
-#, fuzzy
 msgid "Received invalid data on connection with server"
-msgstr "Connectat"
+msgstr ""
 
 #. *< type
 #. *< ui_requirement
@@ -6965,21 +6844,17 @@
 msgid "Invisible"
 msgstr "Invisible"
 
-#, fuzzy
 msgid "Evil"
-msgstr "Corri竪l"
-
-#, fuzzy
+msgstr ""
+
 msgid "Depression"
-msgstr "M竪stier"
-
-#, fuzzy
+msgstr ""
+
 msgid "At home"
-msgstr "A prepaus de %s"
-
-#, fuzzy
+msgstr "A l'ostal"
+
 msgid "At work"
-msgstr "Ret"
+msgstr "Al trabalh"
 
 msgid "At lunch"
 msgstr ""
@@ -7307,7 +7182,7 @@
 msgstr ""
 
 msgid "(no name)"
-msgstr ""
+msgstr "(pas de nom)"
 
 #, c-format
 msgid "Unable to add the buddy %s for an unknown reason."
@@ -7350,9 +7225,8 @@
 msgid "iTunes Music Store Link"
 msgstr ""
 
-#, fuzzy
 msgid "Lunch"
-msgstr "Finch"
+msgstr ""
 
 #, c-format
 msgid "Buddy Comment for %s"
@@ -7383,9 +7257,8 @@
 msgid "Edit Buddy Comment"
 msgstr ""
 
-#, fuzzy
 msgid "Get X-Status Msg"
-msgstr "Messatges enviats"
+msgstr ""
 
 msgid "End Direct IM Session"
 msgstr ""
@@ -7451,17 +7324,15 @@
 msgid "Set Privacy Options..."
 msgstr ""
 
-#, fuzzy
 msgid "Show Visible List"
-msgstr "Ti竪ra de contactes"
-
-#, fuzzy
+msgstr ""
+
 msgid "Show Invisible List"
-msgstr "Invisible"
+msgstr ""
 
 #. AIM actions
 msgid "Confirm Account"
-msgstr ""
+msgstr "Confirmar lo compte"
 
 msgid "Display Currently Registered Email Address"
 msgstr ""
@@ -7511,6 +7382,124 @@
 "considered a privacy risk."
 msgstr ""
 
+#. Label
+msgid "Buddy Icon"
+msgstr ""
+
+msgid "Voice"
+msgstr "Votz"
+
+msgid "AIM Direct IM"
+msgstr ""
+
+msgid "Get File"
+msgstr ""
+
+msgid "Games"
+msgstr "J嘆cs"
+
+msgid "ICQ Xtraz"
+msgstr ""
+
+msgid "Add-Ins"
+msgstr ""
+
+msgid "Send Buddy List"
+msgstr ""
+
+msgid "ICQ Direct Connect"
+msgstr ""
+
+msgid "AP User"
+msgstr ""
+
+msgid "ICQ RTF"
+msgstr ""
+
+msgid "Nihilist"
+msgstr ""
+
+msgid "ICQ Server Relay"
+msgstr ""
+
+msgid "Old ICQ UTF8"
+msgstr ""
+
+msgid "Trillian Encryption"
+msgstr ""
+
+msgid "ICQ UTF8"
+msgstr ""
+
+msgid "Hiptop"
+msgstr ""
+
+msgid "Security Enabled"
+msgstr ""
+
+msgid "Video Chat"
+msgstr ""
+
+msgid "iChat AV"
+msgstr ""
+
+msgid "Live Video"
+msgstr ""
+
+msgid "Camera"
+msgstr "Aparelh de fotografiar"
+
+msgid "Screen Sharing"
+msgstr "Nom d'utilisateur"
+
+msgid "IP Address"
+msgstr "Adre巽a IP"
+
+msgid "Warning Level"
+msgstr ""
+
+msgid "Buddy Comment"
+msgstr ""
+
+#, c-format
+msgid "User information not available: %s"
+msgstr ""
+
+msgid "Mobile Phone"
+msgstr "Telef嘆n mobil"
+
+msgid "Personal Web Page"
+msgstr ""
+
+#. aim_userinfo_t
+#. use_html_status
+msgid "Additional Information"
+msgstr "Entresenhas suplement�rias"
+
+msgid "Zip Code"
+msgstr "C嘆di postal"
+
+msgid "Work Information"
+msgstr ""
+
+msgid "Division"
+msgstr "Division"
+
+msgid "Position"
+msgstr "Posicion"
+
+msgid "Web Page"
+msgstr "Pagina web"
+
+msgid "Online Since"
+msgstr ""
+
+msgid "Member Since"
+msgstr ""
+
+msgid "Capabilities"
+msgstr ""
+
 msgid "Invalid SNAC"
 msgstr ""
 
@@ -7580,125 +7569,6 @@
 msgid "Not while on AOL"
 msgstr ""
 
-#. Label
-msgid "Buddy Icon"
-msgstr ""
-
-msgid "Voice"
-msgstr "Votz"
-
-msgid "AIM Direct IM"
-msgstr ""
-
-msgid "Get File"
-msgstr ""
-
-msgid "Games"
-msgstr "J嘆cs"
-
-msgid "ICQ Xtraz"
-msgstr ""
-
-msgid "Add-Ins"
-msgstr ""
-
-msgid "Send Buddy List"
-msgstr ""
-
-msgid "ICQ Direct Connect"
-msgstr ""
-
-msgid "AP User"
-msgstr ""
-
-msgid "ICQ RTF"
-msgstr ""
-
-msgid "Nihilist"
-msgstr ""
-
-msgid "ICQ Server Relay"
-msgstr ""
-
-msgid "Old ICQ UTF8"
-msgstr ""
-
-msgid "Trillian Encryption"
-msgstr ""
-
-msgid "ICQ UTF8"
-msgstr ""
-
-msgid "Hiptop"
-msgstr ""
-
-msgid "Security Enabled"
-msgstr ""
-
-msgid "Video Chat"
-msgstr ""
-
-msgid "iChat AV"
-msgstr ""
-
-msgid "Live Video"
-msgstr ""
-
-msgid "Camera"
-msgstr "Aparelh de fotografiar"
-
-#, fuzzy
-msgid "Screen Sharing"
-msgstr "Nom d'utilisateur"
-
-msgid "IP Address"
-msgstr "Adre巽a IP"
-
-msgid "Warning Level"
-msgstr ""
-
-msgid "Buddy Comment"
-msgstr ""
-
-#, c-format
-msgid "User information not available: %s"
-msgstr ""
-
-msgid "Mobile Phone"
-msgstr "Telef嘆n mobil"
-
-msgid "Personal Web Page"
-msgstr ""
-
-#. aim_userinfo_t
-#. use_html_status
-msgid "Additional Information"
-msgstr "Entresenhas suplement�rias"
-
-msgid "Zip Code"
-msgstr "C嘆di postal"
-
-msgid "Work Information"
-msgstr ""
-
-msgid "Division"
-msgstr "Division"
-
-msgid "Position"
-msgstr "Posicion"
-
-msgid "Web Page"
-msgstr "Pagina web"
-
-msgid "Online Since"
-msgstr ""
-
-msgid "Member Since"
-msgstr ""
-
-msgid "Capabilities"
-msgstr ""
-
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -7733,16 +7603,14 @@
 "\""
 msgstr ""
 
-#, fuzzy
 msgid "Visible List"
-msgstr "Invisible"
+msgstr "Ti竪ra visibla"
 
 msgid "These buddies will see your status when you switch to \"Invisible\""
 msgstr ""
 
-#, fuzzy
 msgid "Invisible List"
-msgstr "Invisible"
+msgstr "Ti竪ra invisibla"
 
 msgid "These buddies will always see you as offline"
 msgstr ""
@@ -7796,7 +7664,7 @@
 msgstr ""
 
 msgid "Dragon"
-msgstr ""
+msgstr "Dragon"
 
 msgid "Snake"
 msgstr ""
@@ -7805,36 +7673,34 @@
 msgstr ""
 
 msgid "Goat"
-msgstr ""
+msgstr "Cabra"
 
 msgid "Monkey"
-msgstr ""
+msgstr "Monin"
 
 msgid "Rooster"
 msgstr ""
 
 msgid "Dog"
-msgstr ""
+msgstr "Can"
 
 msgid "Pig"
-msgstr ""
+msgstr "Tesson"
 
 msgid "Other"
 msgstr "Autre"
 
-#, fuzzy
 msgid "Visible"
-msgstr "Invisible"
+msgstr "Visible"
 
 msgid "Friend Only"
 msgstr ""
 
-#, fuzzy
 msgid "Private"
-msgstr "Crear"
+msgstr "Privat"
 
 msgid "QQ Number"
-msgstr ""
+msgstr "Num竪ro QQ"
 
 msgid "Country/Region"
 msgstr ""
@@ -7848,9 +7714,8 @@
 msgid "Phone Number"
 msgstr ""
 
-#, fuzzy
 msgid "Authorize adding"
-msgstr "Autorizar"
+msgstr ""
 
 msgid "Cellphone Number"
 msgstr ""
@@ -7858,7 +7723,6 @@
 msgid "Personal Introduction"
 msgstr ""
 
-#, fuzzy
 msgid "City/Area"
 msgstr "Ciutat"
 
@@ -7874,67 +7738,54 @@
 msgid "Horoscope"
 msgstr ""
 
-#, fuzzy
 msgid "Zodiac"
 msgstr "Signe del zodiac"
 
-#, fuzzy
 msgid "Blood"
-msgstr "Gras"
+msgstr ""
 
 msgid "True"
-msgstr ""
-
-#, fuzzy
+msgstr "Verai"
+
 msgid "False"
-msgstr "Error"
-
-#, fuzzy
+msgstr "Fals"
+
 msgid "Modify Contact"
-msgstr "Entresenhas"
-
-#, fuzzy
+msgstr ""
+
 msgid "Modify Address"
-msgstr "Adre巽a personala"
-
-#, fuzzy
+msgstr "Modificar l'adre巽a"
+
 msgid "Modify Extended Information"
-msgstr "Entresenhas"
-
-#, fuzzy
+msgstr ""
+
 msgid "Modify Information"
-msgstr "Entresenhas"
-
-#, fuzzy
+msgstr ""
+
 msgid "Update"
-msgstr "Data"
-
-#, fuzzy
+msgstr ""
+
 msgid "Could not change buddy information."
-msgstr "Entresenhas sus l'utilizaire"
+msgstr ""
 
 msgid "Note"
 msgstr "N嘆ta"
 
 #. callback
-#, fuzzy
 msgid "Buddy Memo"
-msgstr "Ti竪ra de contactes"
+msgstr ""
 
 msgid "Change his/her memo as you like"
 msgstr ""
 
-#, fuzzy
 msgid "_Modify"
-msgstr "Modificar"
-
-#, fuzzy
+msgstr "_Modificar"
+
 msgid "Memo Modify"
-msgstr "Modificar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Server says:"
-msgstr "_Servidor :"
+msgstr ""
 
 msgid "Your request was accepted."
 msgstr ""
@@ -7946,20 +7797,17 @@
 msgid "%u requires verification: %s"
 msgstr ""
 
-#, fuzzy
 msgid "Add buddy question"
-msgstr "Autorizar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Enter answer here"
-msgstr "Picatz lo mot de pas"
+msgstr ""
 
 msgid "Send"
-msgstr "Segondas"
-
-#, fuzzy
+msgstr "Mandar"
+
 msgid "Invalid answer."
-msgstr "L'expression es pas valida"
+msgstr ""
 
 msgid "Authorization denied message:"
 msgstr ""
@@ -7971,9 +7819,8 @@
 msgid "%u needs authorization"
 msgstr ""
 
-#, fuzzy
 msgid "Add buddy authorize"
-msgstr "Autorizar"
+msgstr ""
 
 msgid "Enter request here"
 msgstr ""
@@ -7981,17 +7828,14 @@
 msgid "Would you be my friend?"
 msgstr ""
 
-#, fuzzy
 msgid "QQ Buddy"
-msgstr "Apondre lo contacte"
-
-#, fuzzy
+msgstr ""
+
 msgid "Add buddy"
-msgstr "Apondre lo contacte"
-
-#, fuzzy
+msgstr "Apondre un contacte"
+
 msgid "Invalid QQ Number"
-msgstr "L'expression es pas valida"
+msgstr ""
 
 msgid "Failed sending authorize"
 msgstr ""
@@ -8021,7 +7865,7 @@
 
 #, c-format
 msgid "Message: %s"
-msgstr ""
+msgstr "Messatge : %s"
 
 msgid "ID: "
 msgstr ""
@@ -8030,7 +7874,7 @@
 msgstr ""
 
 msgid "QQ Qun"
-msgstr ""
+msgstr "QQ Qun"
 
 msgid "Please enter Qun number"
 msgstr ""
@@ -8054,28 +7898,23 @@
 msgstr ""
 
 #. XXX: Should this be "Topic"?
-#, fuzzy
 msgid "Room Title"
-msgstr "T鱈tol"
-
-#, fuzzy
+msgstr ""
+
 msgid "Notice"
-msgstr "N嘆ta"
-
-#, fuzzy
+msgstr ""
+
 msgid "Detail"
-msgstr "Defaut"
+msgstr ""
 
 msgid "Creator"
 msgstr "Creator"
 
-#, fuzzy
 msgid "About me"
-msgstr "A prepaus de %s"
-
-#, fuzzy
+msgstr "A prepaus de ieu"
+
 msgid "Category"
-msgstr "Creator"
+msgstr "Categoria"
 
 msgid "The Qun does not allow others to join"
 msgstr ""
@@ -8086,9 +7925,9 @@
 msgid "Input request here"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Successfully joined Qun %s (%u)"
-msgstr "Entresenhas sus l'utilizaire"
+msgstr ""
 
 msgid "Successfully joined Qun"
 msgstr ""
@@ -8100,16 +7939,14 @@
 msgid "QQ Qun Operation"
 msgstr ""
 
-#, fuzzy
 msgid "Failed:"
-msgstr "Error"
+msgstr ""
 
 msgid "Join Qun, Unknown Reply"
 msgstr ""
 
-#, fuzzy
 msgid "Quit Qun"
-msgstr "Quitar"
+msgstr ""
 
 msgid ""
 "Note, if you are the creator, \n"
@@ -8119,13 +7956,11 @@
 msgid "Sorry, you are not our style"
 msgstr ""
 
-#, fuzzy
 msgid "Successfully changed Qun members"
-msgstr "Entresenhas sus l'utilizaire"
-
-#, fuzzy
+msgstr ""
+
 msgid "Successfully changed Qun information"
-msgstr "Entresenhas sus l'utilizaire"
+msgstr ""
 
 msgid "You have successfully created a Qun"
 msgstr ""
@@ -8152,13 +7987,13 @@
 msgid "<b>Joining Qun %u is approved by admin %u for %s</b>"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "<b>Removed buddy %u.</b>"
-msgstr "Suprimir un contacte"
-
-#, fuzzy, c-format
+msgstr ""
+
+#, c-format
 msgid "<b>New buddy %u joined.</b>"
-msgstr "Suprimir un contacte"
+msgstr ""
 
 #, c-format
 msgid "Unknown-%d"
@@ -8168,7 +8003,7 @@
 msgstr "Niv竪l"
 
 msgid " VIP"
-msgstr ""
+msgstr " VIP"
 
 msgid " TCP"
 msgstr ""
@@ -8180,9 +8015,8 @@
 msgstr ""
 
 msgid " Video"
-msgstr ""
-
-#, fuzzy
+msgstr " Vid竪o"
+
 msgid " Zone"
 msgstr "Pas cap"
 
@@ -8193,11 +8027,10 @@
 msgstr ""
 
 msgid "Invalid name"
-msgstr "L'expression es pas valida"
-
-#, fuzzy
+msgstr ""
+
 msgid "Select icon..."
-msgstr "Seleccionar una poli巽a"
+msgstr ""
 
 #, c-format
 msgid "<b>Login time</b>: %d-%d-%d, %d:%d:%d<br>\n"
@@ -8253,7 +8086,7 @@
 
 #, c-format
 msgid "<b>IP</b>: %s<br>\n"
-msgstr ""
+msgstr "<b>IP</b> : %s<br>\n"
 
 msgid "Login Information"
 msgstr ""
@@ -8282,31 +8115,27 @@
 msgid "<i>Feel free to join us!</i> :)"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "About OpenQ %s"
-msgstr "A prepaus de %s"
-
-#, fuzzy
+msgstr "A prepaus d'OpenQ %s"
+
 msgid "Change Icon"
-msgstr "Modificar lo mot de pas"
+msgstr ""
 
 msgid "Change Password"
 msgstr "Modificar lo mot de pas"
 
-#, fuzzy
 msgid "Account Information"
-msgstr "Entresenhas"
+msgstr "Entresenhas sul compte"
 
 msgid "Update all QQ Quns"
 msgstr ""
 
-#, fuzzy
 msgid "About OpenQ"
-msgstr "A prepaus de %s"
-
-#, fuzzy
+msgstr "A prepaus d'OpenQ"
+
 msgid "Modify Buddy Memo"
-msgstr "Adre巽a personala"
+msgstr ""
 
 #. *< type
 #. *< ui_requirement
@@ -8318,34 +8147,29 @@
 #. *< version
 #. *  summary
 #. *  description
-#, fuzzy
 msgid "QQ Protocol Plugin"
-msgstr "Protoc嘆l"
-
-#, fuzzy
+msgstr ""
+
 msgid "Auto"
-msgstr "Autor"
-
-#, fuzzy
+msgstr "Auto"
+
 msgid "Select Server"
-msgstr "Seleccionar un utilizaire"
-
-msgid "QQ2005"
-msgstr ""
-
-msgid "QQ2007"
 msgstr ""
 
 msgid "QQ2008"
-msgstr ""
-
-#, fuzzy
+msgstr "QQ2008"
+
+msgid "QQ2007"
+msgstr "QQ2007"
+
+msgid "QQ2005"
+msgstr "QQ2005"
+
 msgid "Connect by TCP"
-msgstr "Se connectar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Show server notice"
-msgstr "Entresenhas sul servidor"
+msgstr ""
 
 msgid "Show server news"
 msgstr ""
@@ -8356,9 +8180,8 @@
 msgid "Keep alive interval (seconds)"
 msgstr ""
 
-#, fuzzy
 msgid "Update interval (seconds)"
-msgstr "Entresenhas sus l'utilizaire"
+msgstr ""
 
 msgid "Unable to decrypt server reply"
 msgstr ""
@@ -8367,9 +8190,9 @@
 msgid "Failed requesting token, 0x%02X"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid token len, %d"
-msgstr "L'expression es pas valida"
+msgstr ""
 
 #. extend redirect used in QQ2006
 msgid "Redirect_EX is not currently supported"
@@ -8378,9 +8201,8 @@
 #. need activation
 #. need activation
 #. need activation
-#, fuzzy
 msgid "Activation required"
-msgstr "L'autentificacion a abocat"
+msgstr "L'activacion a abocat"
 
 #, c-format
 msgid "Unknown reply code when logging in (0x%02X)"
@@ -8395,13 +8217,11 @@
 msgid "Failed captcha verification"
 msgstr ""
 
-#, fuzzy
 msgid "Captcha Image"
-msgstr "Enregistrar l'imatge"
-
-#, fuzzy
+msgstr ""
+
 msgid "Enter code"
-msgstr "Picatz lo mot de pas"
+msgstr ""
 
 msgid "QQ Captcha Verification"
 msgstr ""
@@ -8422,9 +8242,8 @@
 msgid "Socket error"
 msgstr ""
 
-#, fuzzy
 msgid "Getting server"
-msgstr "Connectat"
+msgstr ""
 
 msgid "Requesting token"
 msgstr ""
@@ -8432,33 +8251,30 @@
 msgid "Unable to resolve hostname"
 msgstr ""
 
-#, fuzzy
 msgid "Invalid server or port"
-msgstr "L'expression es pas valida"
-
-#, fuzzy
+msgstr ""
+
 msgid "Connecting to server"
-msgstr "Connectat"
-
-#, fuzzy
+msgstr "Connexion al servidor"
+
 msgid "QQ Error"
-msgstr "Error"
-
-#, fuzzy, c-format
+msgstr "Error QQ"
+
+#, c-format
 msgid ""
 "Server News:\n"
 "%s\n"
 "%s\n"
 "%s"
-msgstr "Servidor"
-
-#, fuzzy, c-format
+msgstr ""
+
+#, c-format
 msgid "%s:%s"
-msgstr "%s (%s)"
-
-#, fuzzy, c-format
+msgstr "%s:%s"
+
+#, c-format
 msgid "From %s:"
-msgstr "De"
+msgstr "De %s :"
 
 #, c-format
 msgid ""
@@ -8466,9 +8282,8 @@
 "%s"
 msgstr ""
 
-#, fuzzy
 msgid "Unknown SERVER CMD"
-msgstr "Rason desconeguda"
+msgstr ""
 
 #, c-format
 msgid ""
@@ -8476,20 +8291,17 @@
 "Room %u, reply 0x%02X"
 msgstr ""
 
-#, fuzzy
 msgid "QQ Qun Command"
-msgstr "Comanda"
+msgstr ""
 
 msgid "Unable to decrypt login reply"
 msgstr ""
 
-#, fuzzy
 msgid "Unknown LOGIN CMD"
-msgstr "Rason desconeguda"
-
-#, fuzzy
+msgstr ""
+
 msgid "Unknown CLIENT CMD"
-msgstr "Rason desconeguda"
+msgstr ""
 
 #, c-format
 msgid "%d has declined the file %s"
@@ -8674,7 +8486,7 @@
 msgstr ""
 
 msgid "Select User"
-msgstr "Seleccionar un utilizaire"
+msgstr "Causir l'utilizaire"
 
 msgid "Unable to add user: user not found"
 msgstr ""
@@ -9209,7 +9021,7 @@
 msgstr ""
 
 msgid "Personal Information"
-msgstr "Entresenhas personalas"
+msgstr ""
 
 msgid "Birth Day"
 msgstr ""
@@ -9308,7 +9120,7 @@
 msgstr ""
 
 msgid "Ping"
-msgstr "Ajuston"
+msgstr "Ping"
 
 msgid "Ping failed"
 msgstr ""
@@ -9367,9 +9179,8 @@
 msgid "Disconnected by server"
 msgstr ""
 
-#, fuzzy
 msgid "Error connecting to SILC Server"
-msgstr "Connectat"
+msgstr ""
 
 msgid "Key Exchange failed"
 msgstr ""
@@ -9417,7 +9228,7 @@
 msgstr "SMS"
 
 msgid "MMS"
-msgstr ""
+msgstr "MMS"
 
 msgid "Video conferencing"
 msgstr ""
@@ -9642,7 +9453,7 @@
 msgstr ""
 
 msgid "HMAC"
-msgstr ""
+msgstr "HMAC"
 
 msgid "Use Perfect Forward Secrecy"
 msgstr ""
@@ -9693,7 +9504,7 @@
 
 #, c-format
 msgid "Country: \t%s\n"
-msgstr ""
+msgstr "Pa誰s : \t%s\n"
 
 #, c-format
 msgid "Algorithm: \t%s\n"
@@ -9705,7 +9516,7 @@
 
 #, c-format
 msgid "Version: \t%s\n"
-msgstr ""
+msgstr "Version : \t%s\n"
 
 #, c-format
 msgid ""
@@ -9810,9 +9621,8 @@
 msgid "Unable to create connection"
 msgstr ""
 
-#, fuzzy
 msgid "Unknown server response"
-msgstr "Rason desconeguda"
+msgstr ""
 
 msgid "Unable to create listen socket"
 msgstr ""
@@ -9820,9 +9630,8 @@
 msgid "SIP usernames may not contain whitespaces or @ symbols"
 msgstr ""
 
-#, fuzzy
 msgid "SIP connect server not specified"
-msgstr "Entresenhas sul servidor"
+msgstr ""
 
 #. *< type
 #. *< ui_requirement
@@ -9879,9 +9688,8 @@
 #. *< version
 #. *  summary
 #. *  description
-#, fuzzy
 msgid "Yahoo! Protocol Plugin"
-msgstr "Protoc嘆l"
+msgstr ""
 
 msgid "Pager port"
 msgstr ""
@@ -9917,9 +9725,8 @@
 #. *< version
 #. *  summary
 #. *  description
-#, fuzzy
 msgid "Yahoo! JAPAN Protocol Plugin"
-msgstr "Protoc嘆l"
+msgstr ""
 
 #, c-format
 msgid "%s has sent you a webcam invite, which is not yet supported."
@@ -9971,9 +9778,8 @@
 msgstr ""
 
 #. username or password missing
-#, fuzzy
 msgid "Username or password missing"
-msgstr "Picatz lo mot de pas"
+msgstr ""
 
 #, c-format
 msgid ""
@@ -9994,9 +9800,8 @@
 msgid "Ignore buddy?"
 msgstr ""
 
-#, fuzzy
 msgid "Invalid username or password"
-msgstr "L'expression es pas valida"
+msgstr ""
 
 msgid ""
 "Your account has been locked due to too many failed login attempts.  Please "
@@ -10030,9 +9835,9 @@
 msgid "Received unexpected HTTP response from server"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "Lost connection with %s: %s"
-msgstr "Connectat"
+msgstr ""
 
 #, c-format
 msgid "Unable to establish a connection with %s: %s"
@@ -10238,9 +10043,8 @@
 msgid "User Rooms"
 msgstr ""
 
-#, fuzzy
 msgid "Connection problem with the YCHT server"
-msgstr "Connectat"
+msgstr ""
 
 msgid ""
 "(There was an error converting this message.\t Check the 'Encoding' option "
@@ -10259,7 +10063,7 @@
 msgstr ""
 
 msgid "Anyone"
-msgstr "Qual que si叩"
+msgstr ""
 
 msgid "_Class:"
 msgstr ""
@@ -10389,7 +10193,7 @@
 #. * A wrapper for purple_request_action() that uses @c Yes and @c No buttons.
 #.
 msgid "_Yes"
-msgstr "_�c"
+msgstr "�_c"
 
 msgid "_No"
 msgstr "_Non"
@@ -10431,17 +10235,15 @@
 msgstr ""
 
 #. Shortcut
-#, fuzzy
 msgid "Shortcut"
-msgstr "Ordenar"
+msgstr "Acorchi"
 
 msgid "The text-shortcut for the smiley"
 msgstr ""
 
 #. Stored Image
-#, fuzzy
 msgid "Stored Image"
-msgstr "Enregistrar l'imatge"
+msgstr ""
 
 msgid "Stored Image. (that'll have to do for now)"
 msgstr ""
@@ -10506,7 +10308,7 @@
 #.
 #, c-format
 msgid "%x %X"
-msgstr ""
+msgstr "%x %X"
 
 msgid "Calculating..."
 msgstr "A calcular..."
@@ -10518,37 +10320,37 @@
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d segonda"
-msgstr[1] "%d secondes"
+msgstr[1] "%d segondas"
 
 #, c-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d jorn"
-msgstr[1] "%d jours"
+msgstr[1] "%d jorns"
 
 #, c-format
 msgid "%s, %d hour"
 msgid_plural "%s, %d hours"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%s, %d ora"
+msgstr[1] "%s, %d oras"
 
 #, c-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d ora"
-msgstr[1] "%d heures"
+msgstr[1] "%d oras"
 
 #, c-format
 msgid "%s, %d minute"
 msgid_plural "%s, %d minutes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%s, %d minuta"
+msgstr[1] "%s, %d minutas"
 
 #, c-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minuta"
-msgstr[1] "%d minutes"
+msgstr[1] "%d minutas"
 
 #, c-format
 msgid "Could not open %s: Redirected too many times"
@@ -10582,11 +10384,11 @@
 
 #, c-format
 msgid " - %s"
-msgstr ""
+msgstr " - %s"
 
 #, c-format
 msgid " (%s)"
-msgstr ""
+msgstr " (%s)"
 
 #. 10053
 msgid "Connection interrupted by other software on your computer."
@@ -10598,11 +10400,11 @@
 
 #. 10060
 msgid "Connection timed out."
-msgstr "Connectat"
+msgstr ""
 
 #. 10061
 msgid "Connection refused."
-msgstr "Connectat"
+msgstr ""
 
 #. 10048
 msgid "Address already in use."
@@ -10636,7 +10438,7 @@
 msgstr ""
 
 msgid "_Username:"
-msgstr "_Nom d'utilizaire :"
+msgstr "Nom d'_utilizaire :"
 
 msgid "Remember pass_word"
 msgstr ""
@@ -10655,9 +10457,8 @@
 msgid "Use this buddy _icon for this account:"
 msgstr ""
 
-#, fuzzy
 msgid "Ad_vanced"
-msgstr "_Avan巽at"
+msgstr "A_van巽at"
 
 msgid "Use GNOME Proxy Settings"
 msgstr ""
@@ -10672,10 +10473,10 @@
 msgstr "HTTP"
 
 msgid "SOCKS 4"
-msgstr ""
+msgstr "SOCKS 4"
 
 msgid "SOCKS 5"
-msgstr ""
+msgstr "SOCKS 5"
 
 msgid "Use Environmental Settings"
 msgstr ""
@@ -10696,7 +10497,7 @@
 msgstr ""
 
 msgid "_Host:"
-msgstr "_�ste :"
+msgstr "�_ste :"
 
 msgid "_Port:"
 msgstr "_P嘆rt :"
@@ -10719,9 +10520,8 @@
 msgid "Create _this new account on the server"
 msgstr ""
 
-#, fuzzy
 msgid "P_roxy"
-msgstr "Proxy"
+msgstr "P_roxy"
 
 msgid "Enabled"
 msgstr "Activat"
@@ -10753,9 +10553,8 @@
 msgid "The background color for the buddy list"
 msgstr ""
 
-#, fuzzy
 msgid "Layout"
-msgstr "Laossian"
+msgstr ""
 
 msgid "The layout of icons, name, and status of the buddy list"
 msgstr ""
@@ -10763,9 +10562,8 @@
 #. Group
 #. Note to translators: These two strings refer to the background color
 #. of a buddy list group when in its expanded state
-#, fuzzy
 msgid "Expanded Background Color"
-msgstr "Color de fons"
+msgstr ""
 
 msgid "The background color of an expanded group"
 msgstr ""
@@ -10780,9 +10578,8 @@
 
 #. Note to translators: These two strings refer to the background color
 #. of a buddy list group when in its collapsed state
-#, fuzzy
 msgid "Collapsed Background Color"
-msgstr "Color de fons"
+msgstr "Col"
 
 msgid "The background color of a collapsed group"
 msgstr ""
@@ -10798,63 +10595,56 @@
 #. Buddy
 #. Note to translators: These two strings refer to the background color
 #. of a buddy list contact or chat room
-#, fuzzy
 msgid "Contact/Chat Background Color"
-msgstr "Color de fons"
+msgstr ""
 
 msgid "The background color of a contact or chat"
 msgstr ""
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list contact when in its expanded state
-#, fuzzy
 msgid "Contact Text"
-msgstr "Ordenar"
+msgstr ""
 
 msgid "The text information for when a contact is expanded"
 msgstr ""
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when it is online
-#, fuzzy
 msgid "Online Text"
-msgstr "En linha"
+msgstr ""
 
 msgid "The text information for when a buddy is online"
 msgstr ""
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when it is away
-#, fuzzy
 msgid "Away Text"
-msgstr "Absent(a)"
+msgstr "T竪xte dels contactes absents"
 
 msgid "The text information for when a buddy is away"
 msgstr ""
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when it is offline
-#, fuzzy
 msgid "Offline Text"
-msgstr "Desconnectat"
+msgstr ""
 
 msgid "The text information for when a buddy is offline"
 msgstr ""
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when it is idle
-#, fuzzy
 msgid "Idle Text"
-msgstr "Inactiu"
+msgstr ""
 
 msgid "The text information for when a buddy is idle"
 msgstr ""
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when they have sent you a new message
-#, fuzzy
 msgid "Message Text"
-msgstr "Messatge"
+msgstr ""
 
 msgid "The text information for when a buddy has an unread message"
 msgstr ""
@@ -10888,9 +10678,8 @@
 msgid "Please update the necessary fields."
 msgstr ""
 
-#, fuzzy
 msgid "A_ccount"
-msgstr "_Compte�:"
+msgstr "_Compte"
 
 msgid ""
 "Please enter the appropriate information about the chat you would like to "
@@ -10901,10 +10690,10 @@
 msgstr ""
 
 msgid "_Block"
-msgstr ""
+msgstr "_Blocar"
 
 msgid "Un_block"
-msgstr ""
+msgstr "Des_blocar"
 
 msgid "Move to"
 msgstr ""
@@ -10925,7 +10714,7 @@
 msgstr ""
 
 msgid "_Send File..."
-msgstr "_Enviar lo fichi竪r..."
+msgstr "_Mandar un fichi竪r..."
 
 msgid "Add Buddy _Pounce..."
 msgstr ""
@@ -10940,7 +10729,7 @@
 msgstr ""
 
 msgid "_Alias..."
-msgstr ""
+msgstr "_Ali�s..."
 
 msgid "_Remove"
 msgstr "_Suprimir"
@@ -10998,9 +10787,8 @@
 msgid "Please select your mood from the list"
 msgstr ""
 
-#, fuzzy
 msgid "Message (optional)"
-msgstr "Messatge"
+msgstr ""
 
 msgid "Edit User Mood"
 msgstr ""
@@ -11009,7 +10797,7 @@
 #. gtk_blist_key_press_cb to "Get User Info" on the selected buddy.
 #. Buddies menu
 msgid "/_Buddies"
-msgstr ""
+msgstr "/_Contactes"
 
 msgid "/Buddies/New Instant _Message..."
 msgstr ""
@@ -11058,15 +10846,14 @@
 
 #. Accounts menu
 msgid "/_Accounts"
-msgstr "/_Comptse"
-
-#, fuzzy
+msgstr "/_Comptes"
+
 msgid "/Accounts/Manage Accounts"
-msgstr "/Comptes/Gerir"
+msgstr "/Comptes/Gerir los comptes"
 
 #. Tools
 msgid "/_Tools"
-msgstr ""
+msgstr "/_Espleches"
 
 msgid "/Tools/Buddy _Pounces"
 msgstr ""
@@ -11108,20 +10895,17 @@
 msgid "/Help/Online _Help"
 msgstr ""
 
-#, fuzzy
 msgid "/Help/_Build Information"
-msgstr "Entresenhas"
+msgstr ""
 
 msgid "/Help/_Debug Window"
 msgstr ""
 
-#, fuzzy
 msgid "/Help/De_veloper Information"
-msgstr "Entresenhas sul servidor"
-
-#, fuzzy
+msgstr ""
+
 msgid "/Help/_Translator Information"
-msgstr "Entresenhas personalas"
+msgstr ""
 
 msgid "/Help/_About"
 msgstr "/Ajuda/_A prepaus"
@@ -11251,7 +11035,7 @@
 msgstr "<b>Mot de pas :</b>"
 
 msgid "_Login"
-msgstr "Se _connectar"
+msgstr "_Connexion"
 
 msgid "/Accounts"
 msgstr "/Comptes"
@@ -11285,11 +11069,10 @@
 msgstr ""
 
 msgid "Add a buddy.\n"
-msgstr ""
-
-#, fuzzy
+msgstr "Apondre un contacte.\n"
+
 msgid "Buddy's _username:"
-msgstr "_Nom d'utilizaire :"
+msgstr ""
 
 msgid "(Optional) A_lias:"
 msgstr ""
@@ -11311,7 +11094,7 @@
 msgstr ""
 
 msgid "A_lias:"
-msgstr ""
+msgstr "A_li�s :"
 
 msgid "_Group:"
 msgstr "_Grop :"
@@ -11337,9 +11120,8 @@
 msgid "_Edit Account"
 msgstr ""
 
-#, fuzzy
 msgid "Set _Mood..."
-msgstr "Modificar lo mot de pas"
+msgstr ""
 
 msgid "No actions available"
 msgstr ""
@@ -11348,7 +11130,7 @@
 msgstr "_Desactivar"
 
 msgid "/Tools"
-msgstr ""
+msgstr "/Espleches"
 
 msgid "/Buddies/Sort Buddies"
 msgstr ""
@@ -11395,9 +11177,8 @@
 msgid "Get Away Message"
 msgstr ""
 
-#, fuzzy
 msgid "Last Said"
-msgstr "Nom"
+msgstr ""
 
 msgid "Unable to save icon file to disk."
 msgstr ""
@@ -11425,7 +11206,7 @@
 
 #. Conversation menu
 msgid "/_Conversation"
-msgstr ""
+msgstr "/_Charradissa"
 
 msgid "/Conversation/New Instant _Message..."
 msgstr ""
@@ -11460,9 +11241,8 @@
 msgid "/Conversation/Se_nd File..."
 msgstr ""
 
-#, fuzzy
 msgid "/Conversation/Get _Attention"
-msgstr "Connectat"
+msgstr ""
 
 msgid "/Conversation/Add Buddy _Pounce..."
 msgstr ""
@@ -11502,7 +11282,7 @@
 
 #. Options
 msgid "/_Options"
-msgstr ""
+msgstr "/_Opcions"
 
 msgid "/Options/Enable _Logging"
 msgstr ""
@@ -11520,7 +11300,7 @@
 msgstr ""
 
 msgid "/Options"
-msgstr ""
+msgstr "/Opcions"
 
 #. The menubar has been deactivated. Make sure the 'More' submenu is regenerated next time
 #. * the 'Conversation' menu pops up.
@@ -11528,7 +11308,7 @@
 #. * the 'Conversation' menu pops up because the entries can change after the
 #. * conversation is created.
 msgid "/Conversation"
-msgstr ""
+msgstr "/Charradissa"
 
 msgid "/Conversation/View Log"
 msgstr ""
@@ -11545,9 +11325,8 @@
 msgid "/Conversation/Send File..."
 msgstr ""
 
-#, fuzzy
 msgid "/Conversation/Get Attention"
-msgstr "Connectat"
+msgstr ""
 
 msgid "/Conversation/Add Buddy Pounce..."
 msgstr ""
@@ -11605,19 +11384,17 @@
 msgstr ""
 
 msgid "_Send"
-msgstr "_Enviar"
+msgstr "_Mandar"
 
 #. Setup the label telling how many people are in the room.
 msgid "0 people in room"
 msgstr "0 persona dins la sala"
 
-#, fuzzy
 msgid "Close Find bar"
-msgstr "Tampar l'onglet"
-
-#, fuzzy
+msgstr ""
+
 msgid "Find:"
-msgstr "Recercar"
+msgstr "Recercar :"
 
 #, c-format
 msgid "%d person in room"
@@ -11650,7 +11427,7 @@
 msgstr ""
 
 msgid "Close all tabs"
-msgstr ""
+msgstr "Tampar totes los onglets"
 
 msgid "Detach this tab"
 msgstr ""
@@ -11659,7 +11436,7 @@
 msgstr "Tampar l'onglet"
 
 msgid "Close conversation"
-msgstr ""
+msgstr "Tampar la charradissa"
 
 msgid "Last created window"
 msgstr ""
@@ -11671,10 +11448,10 @@
 msgstr ""
 
 msgid "By group"
-msgstr ""
+msgstr "Per grop"
 
 msgid "By account"
-msgstr ""
+msgstr "Per compte"
 
 msgid "Find"
 msgstr "Recercar"
@@ -11707,13 +11484,13 @@
 msgstr ""
 
 msgid "Level "
-msgstr ""
+msgstr "Niv竪l "
 
 msgid "Select the debug filter level."
 msgstr ""
 
 msgid "All"
-msgstr "Totes"
+msgstr "Tot"
 
 msgid "Misc"
 msgstr ""
@@ -11722,17 +11499,13 @@
 msgstr "Al竪rta"
 
 msgid "Error "
-msgstr ""
+msgstr "Error "
 
 msgid "Fatal Error"
 msgstr ""
 
-msgid "bug master"
-msgstr ""
-
-#, fuzzy
 msgid "artist"
-msgstr "Artista"
+msgstr "artista"
 
 #. feel free to not translate this
 msgid "Ka-Hing Cheung"
@@ -11764,7 +11537,7 @@
 msgstr ""
 
 msgid "XMPP"
-msgstr ""
+msgstr "XMPP"
 
 msgid "original author"
 msgstr ""
@@ -11781,9 +11554,8 @@
 msgid "Arabic"
 msgstr "Arab"
 
-#, fuzzy
 msgid "Assamese"
-msgstr "J嘆cs"
+msgstr ""
 
 msgid "Belarusian Latin"
 msgstr "Bielorus latin"
@@ -11794,9 +11566,8 @@
 msgid "Bengali"
 msgstr "Bengal鱈"
 
-#, fuzzy
 msgid "Bengali-India"
-msgstr "Bengal鱈"
+msgstr "Bengal鱈 indian"
 
 msgid "Bosnian"
 msgstr "Bosniac"
@@ -11852,9 +11623,8 @@
 msgid "French"
 msgstr "Franc辿s"
 
-#, fuzzy
 msgid "Irish"
-msgstr "Curd"
+msgstr "Irland辿s"
 
 msgid "Galician"
 msgstr "Galician"
@@ -11874,9 +11644,8 @@
 msgid "Hungarian"
 msgstr "Ongr辿s"
 
-#, fuzzy
 msgid "Armenian"
-msgstr "Romanian"
+msgstr ""
 
 msgid "Indonesian"
 msgstr "Indonesian"
@@ -11893,9 +11662,8 @@
 msgid "Ubuntu Georgian Translators"
 msgstr ""
 
-#, fuzzy
 msgid "Khmer"
-msgstr "Autre"
+msgstr ""
 
 msgid "Kannada"
 msgstr "Kannad�"
@@ -11915,24 +11683,23 @@
 msgid "Maithili"
 msgstr ""
 
+msgid "Meadow Mari"
+msgstr ""
+
 msgid "Macedonian"
 msgstr "Macedonian"
 
-#, fuzzy
 msgid "Malayalam"
-msgstr "�me"
-
-#, fuzzy
+msgstr ""
+
 msgid "Mongolian"
-msgstr "Macedonian"
-
-#, fuzzy
+msgstr ""
+
 msgid "Marathi"
-msgstr "Gujarati"
-
-#, fuzzy
+msgstr ""
+
 msgid "Malay"
-msgstr "�me"
+msgstr ""
 
 msgid "Bokm奪l Norwegian"
 msgstr ""
@@ -11947,11 +11714,10 @@
 msgstr "N嘆rvegian (Nynorsk)"
 
 msgid "Occitan"
-msgstr ""
-
-#, fuzzy
+msgstr "Occitan"
+
 msgid "Oriya"
-msgstr "Opcions"
+msgstr ""
 
 msgid "Punjabi"
 msgstr "Punjabi"
@@ -12007,7 +11773,6 @@
 msgid "Turkish"
 msgstr "Turc"
 
-#, fuzzy
 msgid "Ukranian"
 msgstr "Ukrainien"
 
@@ -12068,14 +11833,13 @@
 msgid "About %s"
 msgstr "A prepaus de %s"
 
-#, fuzzy
 msgid "Build Information"
-msgstr "Entresenhas"
+msgstr ""
 
 #. End of not to be translated section
-#, fuzzy, c-format
+#, c-format
 msgid "%s Build Information"
-msgstr "Entresenhas sus l'utilizaire"
+msgstr ""
 
 msgid "Current Developers"
 msgstr ""
@@ -12089,9 +11853,9 @@
 msgid "Retired Crazy Patch Writers"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "%s Developer Information"
-msgstr "Entresenhas sul servidor"
+msgstr ""
 
 msgid "Current Translators"
 msgstr ""
@@ -12099,9 +11863,9 @@
 msgid "Past Translators"
 msgstr ""
 
-#, fuzzy, c-format
+#, c-format
 msgid "%s Translator Information"
-msgstr "Entresenhas"
+msgstr ""
 
 msgid "_Name"
 msgstr "_Nom"
@@ -12205,44 +11969,35 @@
 msgid "Right-click for more unread messages...\n"
 msgstr ""
 
-#, fuzzy
 msgid "_Change Status"
-msgstr "Modificar lo mot de pas"
-
-#, fuzzy
+msgstr ""
+
 msgid "Show Buddy _List"
-msgstr "Ti竪ra de contactes"
-
-#, fuzzy
+msgstr ""
+
 msgid "_Unread Messages"
-msgstr "Messatges pas legits"
-
-#, fuzzy
+msgstr "Messatges _pas legits"
+
 msgid "New _Message..."
-msgstr "Enviar un messatge"
-
-#, fuzzy
+msgstr "_Messatge nov竪l..."
+
 msgid "_Accounts"
-msgstr "/_Comptse"
-
-#, fuzzy
+msgstr "/_Comptes"
+
 msgid "Plu_gins"
-msgstr "Ajustons"
-
-#, fuzzy
+msgstr "A_justons"
+
 msgid "Pr_eferences"
-msgstr "Prefer辿ncias"
-
-#, fuzzy
+msgstr "Pr_efer辿ncias"
+
 msgid "Mute _Sounds"
-msgstr "Sons"
+msgstr ""
 
 msgid "_Blink on New Message"
 msgstr ""
 
-#, fuzzy
 msgid "_Quit"
-msgstr "Quitar"
+msgstr "_Quitar"
 
 msgid "Not started"
 msgstr ""
@@ -12403,7 +12158,7 @@
 msgstr ""
 
 msgid "Select Font"
-msgstr "Seleccionar una poli巽a"
+msgstr ""
 
 msgid "Select Text Color"
 msgstr ""
@@ -12412,7 +12167,7 @@
 msgstr ""
 
 msgid "_URL"
-msgstr ""
+msgstr "_URL"
 
 msgid "_Description"
 msgstr "_Descripcion"
@@ -12495,15 +12250,14 @@
 msgid "Insert Smiley"
 msgstr ""
 
-#, fuzzy
 msgid "Send Attention"
-msgstr "Attention�!"
+msgstr ""
 
 msgid "<b>_Bold</b>"
 msgstr ""
 
 msgid "<i>_Italic</i>"
-msgstr ""
+msgstr "<i>_Italic</i>"
 
 msgid "<u>_Underline</u>"
 msgstr ""
@@ -12536,7 +12290,7 @@
 msgstr "_Imatge"
 
 msgid "_Link"
-msgstr ""
+msgstr "_Ligam"
 
 msgid "_Horizontal rule"
 msgstr ""
@@ -12544,9 +12298,8 @@
 msgid "_Smile!"
 msgstr ""
 
-#, fuzzy
 msgid "_Attention!"
-msgstr "Attention�!"
+msgstr "_Atencion�!"
 
 msgid "Log Deletion Failed"
 msgstr ""
@@ -12622,7 +12375,7 @@
 msgstr ""
 
 msgid "NAME"
-msgstr ""
+msgstr "NOM"
 
 msgid ""
 "enable specified account(s) (optional argument NAME\n"
@@ -12703,12 +12456,11 @@
 "The 'Manual' browser command has been chosen, but no command has been set."
 msgstr ""
 
-#, fuzzy
 msgid "No message"
-msgstr "Messatge"
+msgstr ""
 
 msgid "Open All Messages"
-msgstr ""
+msgstr "Dobrir totes los messatges"
 
 msgid "<span weight=\"bold\" size=\"larger\">You have mail!</span>"
 msgstr ""
@@ -12754,9 +12506,8 @@
 msgid "<b>Web site:</b>"
 msgstr ""
 
-#, fuzzy
 msgid "<b>Filename:</b>"
-msgstr "Nom de fichi竪r :"
+msgstr "<b>Nom de fichi竪r :</b>"
 
 msgid "Configure Pl_ugin"
 msgstr ""
@@ -12765,11 +12516,10 @@
 msgstr ""
 
 msgid "Select a file"
-msgstr "Seleccionar un fichi竪r"
-
-#, fuzzy
+msgstr ""
+
 msgid "Modify Buddy Pounce"
-msgstr "Entresenhas"
+msgstr ""
 
 #. Create the "Pounce on Whom" frame.
 msgid "Pounce on Whom"
@@ -12818,7 +12568,7 @@
 msgstr ""
 
 msgid "Send a _message"
-msgstr ""
+msgstr "Mandar un _messatge"
 
 msgid "E_xecute a command"
 msgstr ""
@@ -12844,13 +12594,11 @@
 msgid "Pounce Target"
 msgstr ""
 
-#, fuzzy
 msgid "Started typing"
-msgstr "Comen巽a a picar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Paused while typing"
-msgstr "L'utilizaire es a picar..."
+msgstr ""
 
 msgid "Signed on"
 msgstr ""
@@ -12861,23 +12609,20 @@
 msgid "Returned from being away"
 msgstr ""
 
-#, fuzzy
 msgid "Stopped typing"
 msgstr "S'arr竪sta de picar"
 
 msgid "Signed off"
 msgstr ""
 
-#, fuzzy
 msgid "Became idle"
-msgstr "Enregistrar lo fichi竪r"
+msgstr ""
 
 msgid "Went away"
 msgstr ""
 
-#, fuzzy
 msgid "Sent a message"
-msgstr "Messatges enviats"
+msgstr ""
 
 msgid "Unknown.... Please report this!"
 msgstr ""
@@ -12891,9 +12636,8 @@
 msgid "The default Pidgin sound theme"
 msgstr ""
 
-#, fuzzy
 msgid "The default Pidgin buddy list theme"
-msgstr "Ti竪ra de contactes"
+msgstr ""
 
 msgid "The default Pidgin status icon theme"
 msgstr ""
@@ -12907,9 +12651,8 @@
 msgid "Theme failed to copy."
 msgstr ""
 
-#, fuzzy
 msgid "Theme Selections"
-msgstr "Seleccionar una poli巽a"
+msgstr ""
 
 #. Instructions
 msgid ""
@@ -12918,20 +12661,17 @@
 "list."
 msgstr ""
 
-#, fuzzy
 msgid "Buddy List Theme:"
-msgstr "Ti竪ra de contactes"
-
-#, fuzzy
+msgstr ""
+
 msgid "Status Icon Theme:"
-msgstr "Estatut"
+msgstr ""
 
 msgid "Sound Theme:"
 msgstr ""
 
-#, fuzzy
 msgid "Smiley Theme:"
-msgstr "Enregistrar l'imatge"
+msgstr ""
 
 msgid "Keyboard Shortcuts"
 msgstr ""
@@ -12949,9 +12689,8 @@
 msgid "On unread messages"
 msgstr ""
 
-#, fuzzy
 msgid "Conversation Window"
-msgstr "Connectat"
+msgstr ""
 
 msgid "_Hide new IM conversations:"
 msgstr ""
@@ -12976,10 +12715,10 @@
 msgstr ""
 
 msgid "Top"
-msgstr "Superior"
+msgstr "Naut"
 
 msgid "Bottom"
-msgstr "Inferior"
+msgstr "Bais"
 
 msgid "Left"
 msgstr "Esqu竪rra"
@@ -13046,17 +12785,15 @@
 msgid "Cannot start browser configuration program."
 msgstr ""
 
-#, fuzzy
 msgid "Disabled"
-msgstr "_Desactivar"
+msgstr "Desactivat"
 
 #, c-format
 msgid "Use _automatically detected IP address: %s"
 msgstr ""
 
-#, fuzzy
 msgid "ST_UN server:"
-msgstr "_Servidor :"
+msgstr "Servidor ST_UN :"
 
 msgid "<span style=\"italic\">Example: stunserver.org</span>"
 msgstr ""
@@ -13073,42 +12810,36 @@
 msgid "_Manually specify range of ports to listen on:"
 msgstr ""
 
-#, fuzzy
 msgid "_Start:"
-msgstr "Estat :"
-
-#, fuzzy
+msgstr ""
+
 msgid "_End:"
-msgstr "_Enviar"
+msgstr "_Fin :"
 
 #. TURN server
 msgid "Relay Server (TURN)"
 msgstr ""
 
-#, fuzzy
 msgid "_TURN server:"
-msgstr "_Servidor :"
-
-#, fuzzy
+msgstr "Servidor _TURN :"
+
 msgid "_UDP Port:"
-msgstr "_P嘆rt :"
-
-#, fuzzy
+msgstr "P嘆rt _UDP :"
+
 msgid "Use_rname:"
-msgstr "_Nom d'utilizaire :"
-
-#, fuzzy
+msgstr "Nom d'utilizai_re :"
+
 msgid "Pass_word:"
-msgstr "Mot de pas�:"
+msgstr "Mot de _pas�:"
 
 msgid "Seamonkey"
-msgstr ""
+msgstr "Seamonkey"
 
 msgid "Opera"
-msgstr "Opcions"
+msgstr "Opera"
 
 msgid "Netscape"
-msgstr ""
+msgstr "Netscape"
 
 msgid "Mozilla"
 msgstr "Mozilla"
@@ -13117,7 +12848,7 @@
 msgstr "Konqueror"
 
 msgid "Google Chrome"
-msgstr ""
+msgstr "Google Chrome"
 
 #. Do not move the line below.  Code below expects gnome-open to be in
 #. * this list immediately after xdg-open!
@@ -13163,7 +12894,7 @@
 msgstr ""
 
 msgid "_Browser:"
-msgstr ""
+msgstr "_Navigador :"
 
 msgid "_Open link in:"
 msgstr ""
@@ -13206,11 +12937,9 @@
 msgid "No proxy"
 msgstr ""
 
-#, fuzzy
 msgid "P_ort:"
 msgstr "_P嘆rt :"
 
-#, fuzzy
 msgid "User_name:"
 msgstr "_Nom d'utilizaire :"
 
@@ -13274,24 +13003,20 @@
 msgid "Sounds when conversation has _focus"
 msgstr ""
 
-#, fuzzy
 msgid "_Enable sounds:"
-msgstr "Activat"
-
-#, fuzzy
+msgstr "A_ctivar los sons :"
+
 msgid "V_olume:"
-msgstr "Volum :"
+msgstr "V_olum :"
 
 msgid "Play"
 msgstr "Legir"
 
-#, fuzzy
 msgid "_Browse..."
-msgstr "Navegador"
-
-#, fuzzy
+msgstr ""
+
 msgid "_Reset"
-msgstr "Reinicializar"
+msgstr "_Reinicializar"
 
 msgid "_Report idle time:"
 msgstr ""
@@ -13325,14 +13050,13 @@
 msgstr "Interfa巽"
 
 msgid "Browser"
-msgstr "Navegador"
+msgstr "Navigador"
 
 msgid "Status / Idle"
 msgstr ""
 
-#, fuzzy
 msgid "Themes"
-msgstr "T竪st"
+msgstr "T竪mas"
 
 msgid "Allow all users to contact me"
 msgstr ""
@@ -13344,7 +13068,7 @@
 msgstr ""
 
 msgid "Block all users"
-msgstr ""
+msgstr "Blocar totes los utilizaires"
 
 msgid "Block only the users below"
 msgstr ""
@@ -13383,7 +13107,7 @@
 msgstr ""
 
 msgid "Block User"
-msgstr ""
+msgstr "Blocar un utilizaire"
 
 msgid "Type a user to block."
 msgstr ""
@@ -13393,7 +13117,7 @@
 
 #, c-format
 msgid "Block %s?"
-msgstr ""
+msgstr "Blocar %s ?"
 
 #, c-format
 msgid "Are you sure you want to block %s?"
@@ -13473,29 +13197,24 @@
 msgid "Add Smiley"
 msgstr ""
 
-#, fuzzy
 msgid "_Image:"
-msgstr "_Imatge"
+msgstr "_Imatge :"
 
 #. Shortcut text
-#, fuzzy
 msgid "S_hortcut text:"
-msgstr "Ordenar"
-
-#, fuzzy
+msgstr ""
+
 msgid "Smiley"
-msgstr "Talha"
-
-#, fuzzy
+msgstr ""
+
 msgid "Shortcut Text"
-msgstr "Ordenar"
+msgstr ""
 
 msgid "Custom Smiley Manager"
 msgstr ""
 
-#, fuzzy
 msgid "Select Buddy Icon"
-msgstr "Seleccionar una poli巽a"
+msgstr ""
 
 msgid "Click to change your buddyicon for this account."
 msgstr ""
@@ -13516,7 +13235,7 @@
 msgstr ""
 
 msgid "Google Talk"
-msgstr ""
+msgstr "Google Talk"
 
 msgid "Facebook (XMPP)"
 msgstr ""
@@ -13601,9 +13320,8 @@
 msgid "Could not set icon"
 msgstr ""
 
-#, fuzzy
 msgid "_Open Link"
-msgstr "_Dobrir lo ligam dins lo navegaire"
+msgstr "D_obrir lo ligam"
 
 msgid "_Copy Link Location"
 msgstr "_Copiar l'empla巽ament del ligam"
@@ -13611,9 +13329,8 @@
 msgid "_Copy Email Address"
 msgstr ""
 
-#, fuzzy
 msgid "_Open File"
-msgstr "_Enviar un fichi竪r"
+msgstr "D_obrir lo fichi竪r"
 
 msgid "Open _Containing Directory"
 msgstr ""
@@ -13621,19 +13338,17 @@
 msgid "Save File"
 msgstr "Enregistrar lo fichi竪r"
 
-#, fuzzy
 msgid "_Play Sound"
-msgstr "Legir un son"
-
-#, fuzzy
+msgstr "_Legir un son"
+
 msgid "_Save File"
-msgstr "Enregistrar lo fichi竪r"
+msgstr "Enregi_strar lo fichi竪r"
 
 msgid "Do you really want to clear?"
 msgstr ""
 
 msgid "Select color"
-msgstr "Seleccionar una color"
+msgstr ""
 
 #. Translators may want to transliterate the name.
 #. It is not to be translated.
@@ -13641,7 +13356,7 @@
 msgstr "Pidgin"
 
 msgid "_Alias"
-msgstr ""
+msgstr "_Ali�s"
 
 msgid "Close _tabs"
 msgstr ""
@@ -13650,22 +13365,19 @@
 msgstr ""
 
 msgid "_Invite"
-msgstr ""
-
-#, fuzzy
+msgstr "Conv_idar"
+
 msgid "_Modify..."
-msgstr "_Modificar"
-
-#, fuzzy
+msgstr "_Modificar..."
+
 msgid "_Add..."
-msgstr "_Apondre"
+msgstr "_Apondre..."
 
 msgid "_Open Mail"
 msgstr ""
 
-#, fuzzy
 msgid "_Edit"
-msgstr "Edicion"
+msgstr "_Edicion"
 
 msgid "Pidgin Tooltip"
 msgstr ""
@@ -13679,9 +13391,8 @@
 msgid "none"
 msgstr "pas cap"
 
-#, fuzzy
 msgid "Small"
-msgstr "Corri竪l"
+msgstr "Pichons"
 
 msgid "Smaller versions of the default smileys"
 msgstr ""
@@ -13793,7 +13504,7 @@
 msgstr ""
 
 msgid "Sent Messages"
-msgstr "Messatges enviats"
+msgstr "Messatges mandats"
 
 msgid "Received Messages"
 msgstr ""
@@ -13813,13 +13524,11 @@
 
 #. Note to translators: The string "Enter an XMPP Server" is asking the
 #. user to type the name of an XMPP server which will then be queried
-#, fuzzy
 msgid "Server name request"
 msgstr "Nom d'utilisateur envoy辿"
 
-#, fuzzy
 msgid "Enter an XMPP Server"
-msgstr "Picatz lo mot de pas"
+msgstr ""
 
 msgid "Select an XMPP server to query"
 msgstr ""
@@ -13827,16 +13536,14 @@
 msgid "Find Services"
 msgstr ""
 
-#, fuzzy
 msgid "Add to Buddy List"
-msgstr "Ti竪ra de contactes"
+msgstr "Apondre a la ti竪ra de contactes"
 
 msgid "Gateway"
 msgstr ""
 
-#, fuzzy
 msgid "Directory"
-msgstr "Creator"
+msgstr ""
 
 msgid "PubSub Collection"
 msgstr ""
@@ -13844,19 +13551,19 @@
 msgid "PubSub Leaf"
 msgstr ""
 
-#, fuzzy
 msgid ""
 "\n"
 "<b>Description:</b> "
-msgstr "Descripcion"
+msgstr ""
+"\n"
+"<b>Descripcion :</b> "
 
 #. Create the window.
 msgid "Service Discovery"
 msgstr ""
 
-#, fuzzy
 msgid "_Browse"
-msgstr "Navegador"
+msgstr ""
 
 msgid "Server does not exist"
 msgstr ""
@@ -14034,13 +13741,13 @@
 
 #. Optional Information section
 msgid "Optional information:"
-msgstr "Entresenhas opcionalas :"
+msgstr ""
 
 msgid "First name:"
 msgstr "Pichon nom :"
 
 msgid "Last name:"
-msgstr "Nom :"
+msgstr "Nom d'ostal :"
 
 msgid "Email:"
 msgstr ""
@@ -14281,9 +13988,8 @@
 msgid "Conversation Entry"
 msgstr ""
 
-#, fuzzy
 msgid "Conversation History"
-msgstr "Connectat"
+msgstr ""
 
 msgid "Request Dialog"
 msgstr ""
@@ -14292,7 +13998,7 @@
 msgstr ""
 
 msgid "Select Color"
-msgstr "Seleccionar una color"
+msgstr ""
 
 #, c-format
 msgid "Select Interface Font"
@@ -14314,9 +14020,8 @@
 msgid "GTK+ Theme Control Settings"
 msgstr ""
 
-#, fuzzy
 msgid "Colors"
-msgstr "Tampar"
+msgstr "Colors"
 
 msgid "Fonts"
 msgstr "Poli巽as"
@@ -14358,9 +14063,8 @@
 msgid "New Version Available"
 msgstr ""
 
-#, fuzzy
 msgid "Later"
-msgstr "Data"
+msgstr "Pus tard"
 
 msgid "Download Now"
 msgstr ""
@@ -14399,9 +14103,8 @@
 
 #. *< name
 #. *< version
-#, fuzzy
 msgid "Conversation Window Send Button."
-msgstr "Connectat"
+msgstr ""
 
 #. *< summary
 msgid ""
@@ -14472,34 +14175,29 @@
 msgid "Icon for Chat"
 msgstr ""
 
-#, fuzzy
 msgid "Ignored"
-msgstr "Ignorar"
-
-#, fuzzy
+msgstr "Ignorat"
+
 msgid "Founder"
-msgstr "Expeditor"
+msgstr ""
 
 #. A user in a chat room who has special privileges.
-#, fuzzy
 msgid "Operator"
-msgstr "Opcions"
+msgstr "Operador"
 
 #. A half operator is someone who has a subset of the privileges
 #. that an operator has.
 msgid "Half Operator"
 msgstr ""
 
-#, fuzzy
 msgid "Authorization dialog"
-msgstr "Autorizar"
+msgstr ""
 
 msgid "Error dialog"
 msgstr ""
 
-#, fuzzy
 msgid "Information dialog"
-msgstr "Entresenhas"
+msgstr ""
 
 msgid "Mail dialog"
 msgstr ""
@@ -14507,38 +14205,32 @@
 msgid "Question dialog"
 msgstr ""
 
-#, fuzzy
 msgid "Warning dialog"
-msgstr "Al竪rta"
+msgstr ""
 
 msgid "What kind of dialog is this?"
 msgstr ""
 
-#, fuzzy
 msgid "Status Icons"
-msgstr "Estatut"
+msgstr ""
 
 msgid "Chatroom Emblems"
 msgstr ""
 
-#, fuzzy
 msgid "Dialog Icons"
-msgstr "Modificar lo mot de pas"
+msgstr ""
 
 msgid "Pidgin Icon Theme Editor"
 msgstr ""
 
-#, fuzzy
 msgid "Contact"
-msgstr "Se connectar"
-
-#, fuzzy
+msgstr "Contacte"
+
 msgid "Pidgin Buddylist Theme Editor"
-msgstr "Ti竪ra de contactes"
-
-#, fuzzy
+msgstr ""
+
 msgid "Edit Buddylist Theme"
-msgstr "Ti竪ra de contactes"
+msgstr ""
 
 msgid "Edit Icon Theme"
 msgstr ""
@@ -14608,10 +14300,10 @@
 msgstr ""
 
 msgid "12 hour time format"
-msgstr ""
+msgstr "Format 12 oras"
 
 msgid "24 hour time format"
-msgstr ""
+msgstr "Format 24 oras"
 
 msgid "Show dates in..."
 msgstr ""
@@ -14649,35 +14341,29 @@
 "timestamp formats."
 msgstr ""
 
-#, fuzzy
 msgid "Audio"
-msgstr "Autor"
-
-#, fuzzy
+msgstr ""
+
 msgid "Video"
-msgstr "Votz"
+msgstr "Vid竪o"
 
 msgid "Output"
 msgstr ""
 
-#, fuzzy
 msgid "_Plugin"
-msgstr "Ajustons"
-
-#, fuzzy
+msgstr "A_juston"
+
 msgid "_Device"
-msgstr "Periferic"
+msgstr "_Periferic"
 
 msgid "Input"
 msgstr ""
 
-#, fuzzy
 msgid "P_lugin"
-msgstr "Ajustons"
-
-#, fuzzy
+msgstr "A_juston"
+
 msgid "D_evice"
-msgstr "Periferic"
+msgstr "P_eriferic"
 
 #. *< magic
 #. *< major version
@@ -14800,7 +14486,7 @@
 msgstr ""
 
 msgid "Account: "
-msgstr ""
+msgstr "Compte : "
 
 msgid "<font color='#777777'>Not connected to XMPP</font>"
 msgstr ""
@@ -14876,13 +14562,12 @@
 msgstr ""
 
 #. Installer Subsection Text
-#, fuzzy
 msgid "Localizations"
-msgstr "Empla巽ament"
+msgstr "Traduccions"
 
 #. "Next >" appears on a button on the License Page of the Installer
 msgid "Next >"
-msgstr ""
+msgstr "Seguent >"
 
 #. Installer Subsection Text
 msgid "Pidgin Instant Messaging Client (required)"
@@ -14895,9 +14580,8 @@
 msgstr ""
 
 #. Installer Subsection Text
-#, fuzzy
 msgid "Shortcuts"
-msgstr "Ordenar"
+msgstr "Acorchis"
 
 #. Installer Subsection Detailed Description
 msgid "Shortcuts for starting Pidgin"
@@ -14908,9 +14592,8 @@
 msgstr ""
 
 #. Installer Subsection Text
-#, fuzzy
 msgid "Start Menu"
-msgstr "Data de debuta"
+msgstr ""
 
 #. Installer Subsection Detailed Description
 msgid ""
--- a/po/pl.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/pl.po	Sat Feb 12 23:54:14 2011 +0000
@@ -13,8 +13,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin Polish translation\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:34-0500\n"
-"PO-Revision-Date: 2010-12-14 13:40+0100\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
+"PO-Revision-Date: 2011-01-25 11:04+0100\n"
 "Last-Translator: Piotr Dr�g <piotrdrag@gmail.com>\n"
 "Language-Team: Polish <pl@li.org>\n"
 "Language: pl\n"
@@ -2372,8 +2372,12 @@
 "�cie甜ka do zapisywania plik坦w w\n"
 "(prosz� poda� pe�n� �cie甜k�)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "Automatyczne odrzucanie od u甜ytkownik坦w spoza listy znajomych"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"Kiedy 甜�danie przes�ania pliku zostaje odebrane od\n"
+"u甜ytkownika, kt坦ry *nie* jest na li�cie znajomych:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2385,6 +2389,9 @@
 msgid "Create a new directory for each user"
 msgstr "Utworzenie nowego katalogu dla ka甜dego u甜ytkownika"
 
+msgid "Escape the filenames"
+msgstr "Sekwencja steruj�ca przed nazwami plik坦w"
+
 msgid "Notes"
 msgstr "Notatki"
 
@@ -3852,7 +3859,10 @@
 "Serwer wymaga uwierzytelnienia w zwyk�ym tek�cie za po�rednictwem "
 "niezaszyfrowanego strumienia"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "Nieprawid�owa odpowied添 z serwera"
 
@@ -6181,6 +6191,20 @@
 msgid "Retrieving User Information..."
 msgstr "Pobieranie informacji o u甜ytkowniku..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "U甜ytkownik zosta� wyrzucony z tego MultiMX."
+
+msgid "was kicked"
+msgstr "zosta� wyrzucony"
+
+msgid "_Room Name:"
+msgstr "_Nazwa pokoju:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "Zaproszono"
+
 msgid "Loading menu..."
 msgstr "Wczytywanie menu..."
 
@@ -6208,20 +6232,6 @@
 msgid "Enable splash-screen popup"
 msgstr "W��czenie wyskakuj�cego ekranu powitalnego"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "U甜ytkownik zosta� wyrzucony z tego MultiMX."
-
-msgid "was kicked"
-msgstr "zosta� wyrzucony"
-
-msgid "_Room Name:"
-msgstr "_Nazwa pokoju:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "Zaproszono"
-
 msgid "Last Online"
 msgstr "Ostatnio online"
 
@@ -7910,75 +7920,6 @@
 "niezb�dne dla obraz坦w komunikatora. Poniewa甜 adres IP zostanie ujawniony, "
 "mo甜e si� to wi�za� z zagro甜eniem prywatno�ci."
 
-msgid "Invalid SNAC"
-msgstr "Nieprawid�owe SNAC"
-
-msgid "Server rate limit exceeded"
-msgstr "Przekroczono ograniczenie pr�dko�ci serwera"
-
-msgid "Client rate limit exceeded"
-msgstr "Przekroczono ograniczenie pr�dko�ci klienta"
-
-msgid "Service unavailable"
-msgstr "Us�uga jest niedost�pna"
-
-msgid "Service not defined"
-msgstr "Nie okre�lono us�ugi"
-
-msgid "Obsolete SNAC"
-msgstr "Przestarza�e SNAC"
-
-msgid "Not supported by host"
-msgstr "Nieobs�ugiwane przez serwer"
-
-msgid "Not supported by client"
-msgstr "Nieobs�ugiwane przez klienta"
-
-msgid "Refused by client"
-msgstr "Odmowa klienta"
-
-msgid "Reply too big"
-msgstr "Odpowied添 jest za du甜a"
-
-msgid "Responses lost"
-msgstr "Utracono odpowiedzi"
-
-msgid "Request denied"
-msgstr "Odrzucono pro�by"
-
-msgid "Busted SNAC payload"
-msgstr "Uszkodzone dane SNAC"
-
-msgid "Insufficient rights"
-msgstr "Niewystarczaj�ce uprawnienia"
-
-msgid "In local permit/deny"
-msgstr "W lokalnym pozwoleniu/odmowie"
-
-msgid "Warning level too high (sender)"
-msgstr "Poziom ostrze甜enia jest za wysoki (nadawca)"
-
-msgid "Warning level too high (receiver)"
-msgstr "Poziom ostrze甜enia jest za wysoki (odbiorca)"
-
-msgid "User temporarily unavailable"
-msgstr "U甜ytkownik jest tymczasowo niedost�pny"
-
-msgid "No match"
-msgstr "Brak wynik坦w"
-
-msgid "List overflow"
-msgstr "Lista jest pe�na"
-
-msgid "Request ambiguous"
-msgstr "Niejednoznaczna pro�ba"
-
-msgid "Queue full"
-msgstr "Kolejka jest pe�na"
-
-msgid "Not while on AOL"
-msgstr "Nie podczas u甜ywania AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "Ikona znajomego"
@@ -8097,6 +8038,75 @@
 msgid "Capabilities"
 msgstr "Mo甜liwo�ci"
 
+msgid "Invalid SNAC"
+msgstr "Nieprawid�owe SNAC"
+
+msgid "Server rate limit exceeded"
+msgstr "Przekroczono ograniczenie pr�dko�ci serwera"
+
+msgid "Client rate limit exceeded"
+msgstr "Przekroczono ograniczenie pr�dko�ci klienta"
+
+msgid "Service unavailable"
+msgstr "Us�uga jest niedost�pna"
+
+msgid "Service not defined"
+msgstr "Nie okre�lono us�ugi"
+
+msgid "Obsolete SNAC"
+msgstr "Przestarza�e SNAC"
+
+msgid "Not supported by host"
+msgstr "Nieobs�ugiwane przez serwer"
+
+msgid "Not supported by client"
+msgstr "Nieobs�ugiwane przez klienta"
+
+msgid "Refused by client"
+msgstr "Odmowa klienta"
+
+msgid "Reply too big"
+msgstr "Odpowied添 jest za du甜a"
+
+msgid "Responses lost"
+msgstr "Utracono odpowiedzi"
+
+msgid "Request denied"
+msgstr "Odrzucono pro�by"
+
+msgid "Busted SNAC payload"
+msgstr "Uszkodzone dane SNAC"
+
+msgid "Insufficient rights"
+msgstr "Niewystarczaj�ce uprawnienia"
+
+msgid "In local permit/deny"
+msgstr "W lokalnym pozwoleniu/odmowie"
+
+msgid "Warning level too high (sender)"
+msgstr "Poziom ostrze甜enia jest za wysoki (nadawca)"
+
+msgid "Warning level too high (receiver)"
+msgstr "Poziom ostrze甜enia jest za wysoki (odbiorca)"
+
+msgid "User temporarily unavailable"
+msgstr "U甜ytkownik jest tymczasowo niedost�pny"
+
+msgid "No match"
+msgstr "Brak wynik坦w"
+
+msgid "List overflow"
+msgstr "Lista jest pe�na"
+
+msgid "Request ambiguous"
+msgstr "Niejednoznaczna pro�ba"
+
+msgid "Queue full"
+msgstr "Kolejka jest pe�na"
+
+msgid "Not while on AOL"
+msgstr "Nie podczas u甜ywania AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8692,14 +8702,14 @@
 msgid "Select Server"
 msgstr "Wyb坦r serwera"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "Po��czenie przez TCP"
@@ -12252,9 +12262,6 @@
 msgid "Fatal Error"
 msgstr "B��d krytyczny"
 
-msgid "bug master"
-msgstr "w�adca b��d坦w"
-
 msgid "artist"
 msgstr "artysta"
 
@@ -12434,6 +12441,9 @@
 msgid "Maithili"
 msgstr "maithili"
 
+msgid "Meadow Mari"
+msgstr "maryjski"
+
 msgid "Macedonian"
 msgstr "macedo�ski"
 
--- a/po/ro.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/ro.po	Sat Feb 12 23:54:14 2011 +0000
@@ -1,15 +1,16 @@
 # Pidgin Romanian translation
 # This file is distributed under the same license as the Pidgin package.
-# 2002-2010, Mi�u Moldovan <dumol@gnome.org>
+# 2002-2011, Mi�u Moldovan <dumol@gnome.org>
 # 2009, Andrei Popescu <andreimpopescu@gmail.com>
 # Contributions: 2007, Alexandru Szasz <alexxed@gmail.com>
-msgid ""
-msgstr ""
-"Project-Id-Version: pidgin-2.7.8\n"
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pidgin-2.7.9\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:34-0500\n"
-"PO-Revision-Date: 2010-12-17 18:47+0200\n"
-"Last-Translator: Mi�u Moldovan <dumol@l10n.ro>\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
+"PO-Revision-Date: 2011-01-31 00:11+0200\n"
+"Last-Translator: Mi�u Moldovan <dumol@gnome.org>\n"
 "Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n"
 "Language: ro\n"
 "MIME-Version: 1.0\n"
@@ -96,7 +97,7 @@
 msgstr "(Probabil a�i uitat s� face�i ��make install��.)"
 
 msgid "Modify Account"
-msgstr "Modificare cont"
+msgstr "Editare cont"
 
 msgid "New Account"
 msgstr "Cont nou"
@@ -105,7 +106,7 @@
 msgstr "Protocol:"
 
 msgid "Username:"
-msgstr "Nume utilizator:"
+msgstr "Nume de utilizator:"
 
 msgid "Password:"
 msgstr "Parol�:"
@@ -212,7 +213,7 @@
 msgstr "Eroare la ad�ugarea contactului"
 
 msgid "Username"
-msgstr "Nume utilizator"
+msgstr "Nume de utilizator"
 
 msgid "Alias (optional)"
 msgstr "Alias (op�ional)"
@@ -285,7 +286,7 @@
 msgstr "Detalii"
 
 msgid "Add Buddy Pounce"
-msgstr "Ad�ugare 樽nt但mpinare"
+msgstr "Ad�uga�i o 樽nt但mpinare"
 
 msgid "Send File"
 msgstr "Trimitere fi�ier"
@@ -637,7 +638,7 @@
 msgstr "Arat� marcaje de timp"
 
 msgid "Add Buddy Pounce..."
-msgstr "Ad�ugare 樽nt但mpinare..."
+msgstr "Ad�uga�i o 樽nt但mpinare..."
 
 msgid "Invite..."
 msgstr "Invit�..."
@@ -1112,7 +1113,7 @@
 msgstr "�nt但mpinare doar 樽n starea de indisponibilitate"
 
 msgid "Recurring"
-msgstr "Recurent�"
+msgstr "Recuren��"
 
 msgid "Cannot create pounce"
 msgstr "Nu se poate crea 樽nt但mpinarea"
@@ -1128,7 +1129,7 @@
 msgstr "Sigur dori�i s� �terge�i 樽nt但mpinarea la %s pentru %s?"
 
 msgid "Buddy Pounces"
-msgstr "�nt但mpin�ri contacte"
+msgstr "�nt但mpin�ri pentru contacte"
 
 #, c-format
 msgid "%s has started typing to you (%s)"
@@ -1247,7 +1248,7 @@
 
 #. Create the window.
 msgid "Room List"
-msgstr "List� camere de chat"
+msgstr "Lista camerelor de chat"
 
 msgid "Buddy logs in"
 msgstr "Un contact se autentific�"
@@ -1551,10 +1552,10 @@
 
 #, c-format
 msgid "TinyURL for above: %s"
-msgstr "TinyURL pentru linkul de mai sus: %s"
+msgstr "TinyURL pentru adresa de mai sus: %s"
 
 msgid "Please wait while TinyURL fetches a shorter URL ..."
-msgstr "A�tepa�i p但n� c但nd TinyURL ofer� un link mai scurt..."
+msgstr "A�tepta�i ca TinyURL s� genereze o adres� mai scurt�..."
 
 msgid "Only create TinyURL for URLs of this length or greater"
 msgstr "Creeaz� TinyURL doar pentru URL-uri de aceast� lungime sau mai mari"
@@ -2322,9 +2323,7 @@
 msgstr "Auto-acceptare"
 
 msgid "Auto-accept file transfer requests from selected users."
-msgstr ""
-"Permite acceptarea automat� a transferurilor de fi�iere ini�iate de anumi�i "
-"utilizatori."
+msgstr "Acceptare automat� pentru anumite transferuri de fi�iere."
 
 #, c-format
 msgid "Autoaccepted file transfer of \"%s\" from \"%s\" completed."
@@ -2367,9 +2366,12 @@
 "Cale pentru salvarea fi�ierelor:\n"
 "(Preciza�i calea complet�)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr ""
-"Refuz� automat pentru utilizatorii ce nu fac parte din lista de contacte"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"C但nd se prime�te o cerere de transfer de fi�iere de la un\n"
+"utilizator ce NU e 樽n lista de contacte:"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2381,6 +2383,9 @@
 msgid "Create a new directory for each user"
 msgstr "Creeaz� un nou director pentru fiecare utilizator"
 
+msgid "Escape the filenames"
+msgstr "Evit� interpretarea caracterelor speciale 樽n nume"
+
 msgid "Notes"
 msgstr "Noti�e"
 
@@ -2441,7 +2446,7 @@
 #. *  summary
 #. *  description
 msgid "DBus Plugin Example"
-msgstr "Exemplu de modul DBus"
+msgstr "Exemplu de modul DBus."
 
 #. *< type
 #. *< ui_requirement
@@ -2650,7 +2655,7 @@
 
 #. Add general preferences.
 msgid "General Log Reading Configuration"
-msgstr "Op�iuni de citire a 樽nregistr�rilor"
+msgstr "Op�iuni de import a 樽nregistr�rilor"
 
 msgid "Fast size calculations"
 msgstr "Calcul rapid m�rime"
@@ -2669,7 +2674,7 @@
 #. *< priority
 #. *< id
 msgid "Log Reader"
-msgstr "Citire 樽nregistr�ri"
+msgstr "Import de 樽nregistr�ri"
 
 #. *< name
 #. *< version
@@ -2728,7 +2733,7 @@
 "apar� dedesubtul numelui de utilizator 樽n fereastra de discu�ii."
 
 msgid "Offline Message Emulation"
-msgstr "Emulare mesaje offline"
+msgstr "Emulare de mesaje offline"
 
 msgid "Save messages sent to an offline user as pounce."
 msgstr "Salveaz� ca 樽nt但mpinare mesajele trimise unui utilizator offline."
@@ -2738,7 +2743,7 @@
 "pounce from the `Buddy Pounce' dialog."
 msgstr ""
 "Restul de mesaje vor fi salvate ca 樽nt但mpinare. Pute�i apoi edita sau �terge "
-"樽nt但mpinarea din fereastra ���nt但mpin�ri contacte��."
+"樽nt但mpinarea din fereastra ���nt但mpin�ri pentru contacte��."
 
 #, c-format
 msgid ""
@@ -2754,7 +2759,8 @@
 
 msgid "You can edit/delete the pounce from the `Buddy Pounces' dialog"
 msgstr ""
-"Pute�i edita ori �terge 樽nt但mpinarea din fereastra ���nt但mpin�ri contacte"
+"Pute�i edita ori �terge 樽nt但mpinarea din fereastra ���nt但mpin�ri pentru "
+"contacte��"
 
 msgid "Yes"
 msgstr "Da"
@@ -2962,7 +2968,7 @@
 #. *< priority
 #. *< id
 msgid "Buddy State Notification"
-msgstr "Notific�ri st�ri contacte"
+msgstr "Notific�ri pentru st�rile contactelor"
 
 #. *< name
 #. *< version
@@ -3628,7 +3634,7 @@
 "away [message]:  Set an away message, or use no message to return from being "
 "away."
 msgstr ""
-"away [mesaj]:  Seta�i un mesaj 樽n absen�� sau, dac� nu preciza�i un mesaj, "
+"away [mesaj]:  Defini�i un mesaj 樽n absen�� sau, dac� nu preciza�i un mesaj, "
 "reveni�i din absen��."
 
 msgid "ctcp <nick> <msg>: sends ctcp msg to nick."
@@ -3700,8 +3706,8 @@
 "mode &lt;+|-&gt;&lt;A-Za-z&gt; &lt;nick|channel&gt;:  Set or unset a channel "
 "or user mode."
 msgstr ""
-"mode &lt;+|-&gt;&lt;A-Za-z&gt; &lt;pseudonim|chat&gt;:  Seta�i sau reseta�i "
-"un chat sau un mod utilizator."
+"mode &lt;+|-&gt;&lt;A-Za-z&gt; &lt;pseudonim|chat&gt;:  Ini�ializa�i sau "
+"reini�ializa�i un chat sau un mod pentru utilizator."
 
 msgid ""
 "msg &lt;nick&gt; &lt;message&gt;:  Send a private message to a user (as "
@@ -3782,7 +3788,8 @@
 
 msgid "umode &lt;+|-&gt;&lt;A-Za-z&gt;:  Set or unset a user mode."
 msgstr ""
-"umode &lt;+|-&gt;&lt;A-Za-z&gt;:  Seta�i sau reseta�i un mod utilizator."
+"umode &lt;+|-&gt;&lt;A-Za-z&gt;:  Ini�ializa�i sau reini�ializa�i un mod "
+"pentru utilizator."
 
 msgid "version [nick]: send CTCP VERSION request to a user"
 msgstr ""
@@ -3835,7 +3842,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr "Serverul necesit� autentificare 樽n clar printr-o conexiune necriptat�"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "R�spuns nevalid de la server."
 
@@ -4151,7 +4161,7 @@
 msgstr "Ca_mer�:"
 
 msgid "_Server:"
-msgstr "_Server:"
+msgstr "Ser_ver:"
 
 msgid "_Handle:"
 msgstr "A_dministrare:"
@@ -4595,7 +4605,7 @@
 
 #, c-format
 msgid "Unable to set role \"%s\" for user: %s"
-msgstr "Nu se poate seta rolul ��%s�� pentru utilizatorul: %s"
+msgstr "Nu se poate defini rolul ��%s�� pentru utilizatorul: %s"
 
 #, c-format
 msgid "Unable to kick user %s"
@@ -4682,14 +4692,15 @@
 
 msgid "ban &lt;user&gt; [reason]:  Ban a user from the room."
 msgstr ""
-"ban &lt;nume utilizator&gt; [chat]:  Bloca�i accesul unui utilizator 樽n chat."
+"ban &lt;nume de utilizator&gt; [chat]:  Bloca�i accesul unui utilizator 樽n "
+"chat."
 
 msgid ""
 "affiliate &lt;owner|admin|member|outcast|none&gt; [nick1] [nick2] ...: Get "
 "the users with an affiliation or set users' affiliation with the room."
 msgstr ""
 "affiliate &lt;de�in�tor|administrator|membru|renegat|nimic&gt; [pseudonim1] "
-"[pseudonim2] ...: Afla�i utilizatorii cu o afiliere sau seta�i afilierea "
+"[pseudonim2] ...: Afla�i utilizatorii cu o afiliere sau defini�i afilierea "
 "utilizatorilor fa�� de camera de chat."
 
 msgid ""
@@ -5502,10 +5513,10 @@
 msgstr "Pagin�"
 
 msgid "Playing a game"
-msgstr "Joac� ceva"
+msgstr "M� joc"
 
 msgid "Working"
-msgstr "Lucreaz�"
+msgstr "Lucrez"
 
 msgid "Has you"
 msgstr "V� are 樽n list�"
@@ -6152,6 +6163,20 @@
 msgid "Retrieving User Information..."
 msgstr "Se ob�in detaliile utilizatorului..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "A�i fost dat afar� din acest MultiMX."
+
+msgid "was kicked"
+msgstr "a fost dat afar�"
+
+msgid "_Room Name:"
+msgstr "Numele came_rei:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "A�i fost invitat"
+
 msgid "Loading menu..."
 msgstr "Se 樽ncarc� meniul..."
 
@@ -6179,20 +6204,6 @@
 msgid "Enable splash-screen popup"
 msgstr "Activare popup pentru imaginea de pornire"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "A�i fost dat afar� din acest MultiMX."
-
-msgid "was kicked"
-msgstr "a fost dat afar�"
-
-msgid "_Room Name:"
-msgstr "Nume came_r�:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "A�i fost invitat"
-
 msgid "Last Online"
 msgstr "Ultima oar� online"
 
@@ -7063,16 +7074,16 @@
 msgstr "Nu se poate trimite mesajul c�tre %s: %s"
 
 msgid "Thinking"
-msgstr "M� g但ndesc"
+msgstr "Pe g但nduri"
 
 msgid "Shopping"
 msgstr "La cump�r�turi"
 
 msgid "Questioning"
-msgstr "Pun 樽ntreb�ri"
+msgstr "�n dubiu"
 
 msgid "Eating"
-msgstr "M�n但nc"
+msgstr "La mas�"
 
 msgid "Watching a movie"
 msgstr "V�d un film"
@@ -7096,7 +7107,7 @@
 msgstr "Dorm"
 
 msgid "Using a PDA"
-msgstr "Folosesc un PDA"
+msgstr "Sunt pe PDA"
 
 msgid "Meeting friends"
 msgstr "Cu prietenii"
@@ -7109,10 +7120,10 @@
 
 #. "I am mobile." / "John is mobile."
 msgid "Mobile"
-msgstr "Mobil"
+msgstr "Pe mobil"
 
 msgid "Searching the web"
-msgstr "Caut pe net"
+msgstr "M� dau pe net"
 
 msgid "At a party"
 msgstr "La o petrecere"
@@ -7571,16 +7582,16 @@
 "posibil� trimiterea de imagini IM."
 
 msgid "Unable to set AIM profile."
-msgstr "Nu se poate seta profilul AIM."
+msgstr "Nu se poate ini�ializa profilul AIM."
 
 msgid ""
 "You have probably requested to set your profile before the login procedure "
 "completed.  Your profile remains unset; try setting it again when you are "
 "fully connected."
 msgstr ""
-"Se pare c� a�i cerut s� seta�i profilul 樽nainte de a v� autentifica. "
-"Profilul v� va r�m但ne la fel. �ncerca�i s�-l seta�i din nou dup� o conectare "
-"pe deplin reu�it�."
+"Se pare c� a�i cerut s� v� ini�ializa�i profilul 樽nainte de a v� "
+"autentifica. Profilul v� va r�m但ne neschimbat �i 樽ncerca�i s�-l "
+"reini�ializa�i dup� o conectare pe deplin reu�it�."
 
 #, c-format
 msgid ""
@@ -7710,10 +7721,10 @@
 
 #, c-format
 msgid "Buddy Comment for %s"
-msgstr "Comentariu contact pentru %s"
+msgstr "Comentariu pentru contactul %s"
 
 msgid "Buddy Comment:"
-msgstr "Comentariu contact:"
+msgstr "Comentariu pentru contact:"
 
 #, c-format
 msgid "You have selected to open a Direct IM connection with %s."
@@ -7836,7 +7847,7 @@
 msgstr "Nu utiliza criptare"
 
 msgid "Use clientLogin"
-msgstr "Utiliza�i clientLogin"
+msgstr "Utilizeaz� clientLogin"
 
 msgid ""
 "Always use AIM/ICQ proxy server for\n"
@@ -7875,75 +7886,6 @@
 "necesar� pentru imaginile IM. Pentru c� adresa IP v� va fi expus�, lua�i 樽n "
 "considerare riscurile la care v� expune�i."
 
-msgid "Invalid SNAC"
-msgstr "SNAC nevalid"
-
-msgid "Server rate limit exceeded"
-msgstr "S-a dep��it limitarea de server"
-
-msgid "Client rate limit exceeded"
-msgstr "S-a dep��it limitarea de client"
-
-msgid "Service unavailable"
-msgstr "Serviciu indisponibil"
-
-msgid "Service not defined"
-msgstr "Serviciu nedefinit"
-
-msgid "Obsolete SNAC"
-msgstr "SNAC 樽nvechit"
-
-msgid "Not supported by host"
-msgstr "Nesuportat de c�tre server"
-
-msgid "Not supported by client"
-msgstr "Nesuportat de c�tre client"
-
-msgid "Refused by client"
-msgstr "Refuzat de c�tre client"
-
-msgid "Reply too big"
-msgstr "R�spuns supradimensionat"
-
-msgid "Responses lost"
-msgstr "R�spunsuri pierdute"
-
-msgid "Request denied"
-msgstr "Cerere respins�"
-
-msgid "Busted SNAC payload"
-msgstr "�nc�rc�tur� SNAC nevalid�"
-
-msgid "Insufficient rights"
-msgstr "Drepturi insuficiente"
-
-msgid "In local permit/deny"
-msgstr "�n lista permi�i/refuza�i local�"
-
-msgid "Warning level too high (sender)"
-msgstr "Nivel de avertizare prea ridicat (pentru expeditor)"
-
-msgid "Warning level too high (receiver)"
-msgstr "Nivel de avertizare prea ridicat (pentru destinatar)"
-
-msgid "User temporarily unavailable"
-msgstr "Utilizatorul este temporar indisponibil."
-
-msgid "No match"
-msgstr "Nicio potrivire"
-
-msgid "List overflow"
-msgstr "List� suprasaturat�"
-
-msgid "Request ambiguous"
-msgstr "Cerere ambigu�"
-
-msgid "Queue full"
-msgstr "Coad� plin�"
-
-msgid "Not while on AOL"
-msgstr "Nu (c但t timp e pe AOL)"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "Avatar"
@@ -8021,7 +7963,7 @@
 msgstr "Nivel de avertizare"
 
 msgid "Buddy Comment"
-msgstr "Comentariu contact"
+msgstr "Comentariu pentru contact"
 
 #, c-format
 msgid "User information not available: %s"
@@ -8062,6 +8004,75 @@
 msgid "Capabilities"
 msgstr "Facilit��i"
 
+msgid "Invalid SNAC"
+msgstr "SNAC nevalid"
+
+msgid "Server rate limit exceeded"
+msgstr "S-a dep��it limitarea de server"
+
+msgid "Client rate limit exceeded"
+msgstr "S-a dep��it limitarea de client"
+
+msgid "Service unavailable"
+msgstr "Serviciu indisponibil"
+
+msgid "Service not defined"
+msgstr "Serviciu nedefinit"
+
+msgid "Obsolete SNAC"
+msgstr "SNAC 樽nvechit"
+
+msgid "Not supported by host"
+msgstr "Nesuportat de c�tre server"
+
+msgid "Not supported by client"
+msgstr "Nesuportat de c�tre client"
+
+msgid "Refused by client"
+msgstr "Refuzat de c�tre client"
+
+msgid "Reply too big"
+msgstr "R�spuns supradimensionat"
+
+msgid "Responses lost"
+msgstr "R�spunsuri pierdute"
+
+msgid "Request denied"
+msgstr "Cerere respins�"
+
+msgid "Busted SNAC payload"
+msgstr "�nc�rc�tur� SNAC nevalid�"
+
+msgid "Insufficient rights"
+msgstr "Drepturi insuficiente"
+
+msgid "In local permit/deny"
+msgstr "�n lista permi�i/refuza�i local�"
+
+msgid "Warning level too high (sender)"
+msgstr "Nivel de avertizare prea ridicat (pentru expeditor)"
+
+msgid "Warning level too high (receiver)"
+msgstr "Nivel de avertizare prea ridicat (pentru destinatar)"
+
+msgid "User temporarily unavailable"
+msgstr "Utilizatorul este temporar indisponibil."
+
+msgid "No match"
+msgstr "Nicio potrivire"
+
+msgid "List overflow"
+msgstr "List� suprasaturat�"
+
+msgid "Request ambiguous"
+msgstr "Cerere ambigu�"
+
+msgid "Queue full"
+msgstr "Coad� plin�"
+
+msgid "Not while on AOL"
+msgstr "Nu (c但t timp e pe AOL)"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8654,14 +8665,14 @@
 msgid "Select Server"
 msgstr "Selecta�i serverul"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "Conectare folosind TCP"
@@ -8986,7 +8997,7 @@
 msgstr "Ultim client cunoscut"
 
 msgid "User Name"
-msgstr "Nume utilizator"
+msgstr "Nume de utilizator"
 
 msgid "Sametime ID"
 msgstr "ID Sametime"
@@ -9217,7 +9228,7 @@
 msgstr "IM parolat"
 
 msgid "Cannot set IM key"
-msgstr "Nu se poate seta cheia IM"
+msgstr "Nu se poate ini�ializa cheia IM"
 
 msgid "Set IM Password"
 msgstr "Introducere parol� IM"
@@ -9438,7 +9449,8 @@
 
 msgid "Set user limit on channel. Set to zero to reset user limit."
 msgstr ""
-"Seta�i num�rul maxim de utilizatori 樽n chat. Zero pentru num�r nelimitat."
+"Defini�i num�rul maxim de utilizatori 樽n chat. Zero pentru un num�r "
+"nelimitat."
 
 msgid "Invite List"
 msgstr "List� invita�ii"
@@ -9546,7 +9558,7 @@
 
 #, c-format
 msgid "<I>%s</I> set channel <I>%s</I> modes to: %s"
-msgstr "<I>%s</I> a setat modurile chat-ului <I>%s</I> astfel: %s"
+msgstr "<I>%s</I> a definit modurile chat-ului <I>%s</I> astfel: %s"
 
 #, c-format
 msgid "<I>%s</I> removed all channel <I>%s</I> modes"
@@ -9554,7 +9566,7 @@
 
 #, c-format
 msgid "<I>%s</I> set <I>%s's</I> modes to: %s"
-msgstr "<I>%s</I> a setat modurile pentru <I>%s</I> astfel: %s"
+msgstr "<I>%s</I> a definit modurile pentru <I>%s</I> astfel: %s"
 
 #, c-format
 msgid "<I>%s</I> removed all <I>%s's</I> modes"
@@ -9906,11 +9918,11 @@
 
 #, c-format
 msgid "no channel modes are set on %s"
-msgstr "chat-ul %s nu are setat niciun mod"
+msgstr "chat-ul %s nu are niciun mod definit"
 
 #, c-format
 msgid "Failed to set cmodes for %s"
-msgstr "Nu s-au putut seta modurile chat-ului %s"
+msgstr "Nu s-au putut defini modurile chat-ului %s"
 
 #, c-format
 msgid "Unknown command: %s, (may be a client bug)"
@@ -10091,7 +10103,7 @@
 
 #, c-format
 msgid "User Name: \t%s\n"
-msgstr "Nume utilizator: \t%s\n"
+msgstr "Nume de utilizator: \t%s\n"
 
 #, c-format
 msgid "Email: \t\t%s\n"
@@ -10324,7 +10336,7 @@
 msgstr "Utilizeaz� proxy-ul contului pentru conexiuni HTTP �i HTTPS"
 
 msgid "Chat room list URL"
-msgstr "Adres� list� camere de chat"
+msgstr "Adresa listei camerelor de chat"
 
 msgid "Yahoo JAPAN ID..."
 msgstr "Identitate Yahoo Japonia..."
@@ -10743,13 +10755,14 @@
 
 msgid "instance &lt;instance&gt;: Set the instance to be used on this class"
 msgstr ""
-"instance &lt;instan��&gt;:  Seta�i instan�a de utilizat 樽n aceast� clas�"
+"instance &lt;instan��&gt;:  Defini�i instan�a de utilizat 樽n aceast� clas�"
 
 msgid "inst &lt;instance&gt;: Set the instance to be used on this class"
-msgstr "inst &lt;instan��&gt;:  Seta�i instan�a de utilizat 樽n aceast� clas�"
+msgstr "inst &lt;instan��&gt;:  Defini�i instan�a de utilizat 樽n aceast� clas�"
 
 msgid "topic &lt;instance&gt;: Set the instance to be used on this class"
-msgstr "topic &lt;instan��&gt;:  Seta�i instan�a de utilizat 樽n aceast� clas�"
+msgstr ""
+"topic &lt;instan��&gt;:  Defini�i instan�a de utilizat 樽n aceast� clas�"
 
 msgid "sub &lt;class&gt; &lt;instance&gt; &lt;recipient&gt;: Join a new chat"
 msgstr ""
@@ -10932,7 +10945,7 @@
 msgstr "Eroare SSL necunoscut�"
 
 msgid "Unset"
-msgstr "Nesetat"
+msgstr "Nedefinit"
 
 msgid "Do not disturb"
 msgstr "Nu deranja�i"
@@ -11084,7 +11097,7 @@
 
 #. 10061
 msgid "Connection refused."
-msgstr "Conexiune resetat�."
+msgstr "Conexiune refuzat�."
 
 #. 10048
 msgid "Address already in use."
@@ -11124,14 +11137,14 @@
 msgstr "Nume _utilizator:"
 
 msgid "Remember pass_word"
-msgstr "_Salvare parol�"
+msgstr "Sal_vare parol�"
 
 #. Build the user options frame.
 msgid "User Options"
 msgstr "Op�iuni personale"
 
 msgid "_Local alias:"
-msgstr "_Alias local:"
+msgstr "Alias l_ocal:"
 
 msgid "New _mail notifications"
 msgstr "Notificare la _mail nou"
@@ -11186,7 +11199,7 @@
 msgstr "P_ort:"
 
 msgid "Pa_ssword:"
-msgstr "Pa_rol�:"
+msgstr "_Parol�:"
 
 msgid "Unable to save new account"
 msgstr "Nu se poate salva noul cont"
@@ -11232,8 +11245,8 @@
 "<b>Adaug�...</b> de c但te ori dori�i.\n"
 "\n"
 "Ve�i putea reveni la aceast� fereastr� pentru a ad�uga, edita sau �terge "
-"conturi utiliz但nd <b>Conturi->Administrare conturi</b> 樽n fereastra listei "
-"de contacte."
+"conturi utiliz但nd <b>Conturi->Administrare</b> 樽n fereastra listei de "
+"contacte."
 
 #, c-format
 msgid "%s%s%s%s wants to add you (%s) to his or her buddy list%s%s"
@@ -11242,7 +11255,7 @@
 
 #. Buddy List
 msgid "Background Color"
-msgstr "Culoare fundal"
+msgstr "Culoarea fundalului"
 
 msgid "The background color for the buddy list"
 msgstr "Culoarea de fundal pentru lista de contacte"
@@ -11257,7 +11270,7 @@
 #. Note to translators: These two strings refer to the background color
 #. of a buddy list group when in its expanded state
 msgid "Expanded Background Color"
-msgstr "Culoare fundal la desfacere"
+msgstr "Culoarea fundalului la desfacere"
 
 msgid "The background color of an expanded group"
 msgstr "Culoarea de fundal a unui grup desf�cut"
@@ -11265,15 +11278,15 @@
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list group when in its expanded state
 msgid "Expanded Text"
-msgstr "Text text la desfacere"
+msgstr "Culoarea textului la desfacere"
 
 msgid "The text information for when a group is expanded"
-msgstr "Informa�ia text pentru un grup desf�cut"
+msgstr "Detaliile textului pentru un grup desf�cut"
 
 #. Note to translators: These two strings refer to the background color
 #. of a buddy list group when in its collapsed state
 msgid "Collapsed Background Color"
-msgstr "Culoare fundal la str但ngere"
+msgstr "Culoarea fundalului la str但ngere"
 
 msgid "The background color of a collapsed group"
 msgstr "Culoarea de fundal a unui grup str但ns"
@@ -11284,13 +11297,13 @@
 msgstr "Text la str但ngere"
 
 msgid "The text information for when a group is collapsed"
-msgstr "Informa�ia text pentru un grup str但ns"
+msgstr "Detaliile textului pentru un grup str但ns"
 
 #. Buddy
 #. Note to translators: These two strings refer to the background color
 #. of a buddy list contact or chat room
 msgid "Contact/Chat Background Color"
-msgstr "Culoare fundal contact/chat"
+msgstr "Culoarea fundalului pentru contacte �i chat-uri"
 
 msgid "The background color of a contact or chat"
 msgstr "Culoarea de fundal a unui contact sau chat"
@@ -11298,64 +11311,65 @@
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list contact when in its expanded state
 msgid "Contact Text"
-msgstr "Text contact"
+msgstr "Textul contactului"
 
 msgid "The text information for when a contact is expanded"
-msgstr "Informa�ia text pentru un contact str但ns"
+msgstr "Detaliile textului pentru un contact desf�cut"
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when it is online
 msgid "Online Text"
-msgstr "Text online"
+msgstr "Textul contactelor online"
 
 msgid "The text information for when a buddy is online"
-msgstr "Informa�ia text pentru un contact online"
+msgstr "Detaliile textului pentru contacte online"
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when it is away
 msgid "Away Text"
-msgstr "Text absent"
+msgstr "Textul contactelor absente"
 
 msgid "The text information for when a buddy is away"
-msgstr "Informa�ia text pentru un contact absent"
+msgstr "Detaliile textului pentru contacte absente"
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when it is offline
 msgid "Offline Text"
-msgstr "Text offline"
+msgstr "Textul contactelor offline"
 
 msgid "The text information for when a buddy is offline"
-msgstr "Informa�ia text pentru un contact offline"
+msgstr "Detaliile textului pentru contacte offline"
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when it is idle
 msgid "Idle Text"
-msgstr "Text inactiv"
+msgstr "Textul contactelor inactive"
 
 msgid "The text information for when a buddy is idle"
-msgstr "Informa�ia text pentru un contact inactiv"
+msgstr "Detaliile textului pentru contacte inactive"
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when they have sent you a new message
 msgid "Message Text"
-msgstr "Text mesaj"
+msgstr "Textul mesajelor necitite"
 
 msgid "The text information for when a buddy has an unread message"
-msgstr "Informa�ia text pentru un contact cu un mesaj necitit"
+msgstr "Detaliile textului pentru contacte cu mesaje necitite"
 
 #. Note to translators: These two strings refer to the font and color
 #. of a buddy list buddy when they have sent you a new message
 msgid "Message (Nick Said) Text"
-msgstr "Textul mesajului (utilizatorul a spus)"
+msgstr "Textul mesajelor noi"
 
 msgid ""
 "The text information for when a chat has an unread message that mentions "
 "your nickname"
 msgstr ""
-"Informa�ia text pentru un chat cu un mesaj necitit ce v� men�ioneaz� numele"
+"Detaliile textului pentru un chat cu un mesaj necitit ce v� men�ioneaz� "
+"numele"
 
 msgid "The text information for a buddy's status"
-msgstr "Informa�ia text pentru starea unui contact"
+msgstr "Detaliile textului pentru statusul unui contact"
 
 #, c-format
 msgid "You have %d contact named %s. Would you like to merge them?"
@@ -11383,8 +11397,7 @@
 msgid ""
 "Please enter the appropriate information about the chat you would like to "
 "join.\n"
-msgstr ""
-"Introduce�i informa�iile despre chat-ul 樽n care dori�i s� participa�i.\n"
+msgstr "Introduce�i detaliile chat-ului 樽n care dori�i intra�i.\n"
 
 msgid "Room _List"
 msgstr "_List� de camere"
@@ -11493,7 +11506,7 @@
 msgstr "Mesaj (op�ional)"
 
 msgid "Edit User Mood"
-msgstr "Schimbare a propriei dispozi�ii"
+msgstr "Schimba�i-v� dispozi�ia"
 
 #. NOTE: Do not set any accelerator to Control+O. It is mapped by
 #. gtk_blist_key_press_cb to "Get User Info" on the selected buddy.
@@ -11551,14 +11564,14 @@
 msgstr "/_Conturi"
 
 msgid "/Accounts/Manage Accounts"
-msgstr "/Conturi/Administrare conturi"
+msgstr "/Conturi/Administrare"
 
 #. Tools
 msgid "/_Tools"
 msgstr "/_Unelte"
 
 msgid "/Tools/Buddy _Pounces"
-msgstr "/Unelte/�_nt但mpin�ri contacte"
+msgstr "/Unelte/�_nt但mpin�ri pentru contacte"
 
 msgid "/Tools/_Certificates"
 msgstr "/Unelte/_Certificate"
@@ -11582,7 +11595,7 @@
 msgstr "/Unelte/_Transfer de fi�iere"
 
 msgid "/Tools/R_oom List"
-msgstr "/Unelte/_List� camere de chat"
+msgstr "/Unelte/_Lista camerelor de chat"
 
 msgid "/Tools/System _Log"
 msgstr "/Unelte/�n_registr�ri de sistem"
@@ -11690,7 +11703,7 @@
 msgstr "/Unelte/Securitate"
 
 msgid "/Tools/Room List"
-msgstr "/Unelte/List� camere de chat"
+msgstr "/Unelte/Lista camerelor de chat"
 
 #, c-format
 msgid "%d unread message from %s\n"
@@ -11741,7 +11754,7 @@
 "parte:"
 
 msgid "<b>Username:</b>"
-msgstr "<b>Nume utilizator:</b>"
+msgstr "<b>Nume de utilizator:</b>"
 
 msgid "<b>Password:</b>"
 msgstr "<b>Parol�:</b>"
@@ -11764,8 +11777,8 @@
 "<span weight='bold' size='larger'>Bun venit 樽n %s!</span>\n"
 "\n"
 "Nu ave�i niciun cont activ. Activa�i-v� conturile de mesagerie instant 樽n "
-"fereastra <b>Conturi</b>, accesibil� pe calea <b>Conturi->Administrare "
-"conturi</b>. Abia dup� activare ve�i putea utiliza conturile definite."
+"fereastra <b>Conturi</b>, accesibil� pe calea <b>Conturi->Administrare</b>. "
+"Abia dup� activare ve�i putea utiliza conturile definite."
 
 #. set the Show Offline Buddies option. must be done
 #. * after the treeview or faceprint gets mad. -Robot101
@@ -11786,16 +11799,16 @@
 msgstr "/Contacte/Arat�/Iconi�ele de protocol"
 
 msgid "Add a buddy.\n"
-msgstr "Adaug� un contact.\n"
+msgstr "Ad�uga�i un contact.\n"
 
 msgid "Buddy's _username:"
-msgstr "Nume de _utilizator:"
+msgstr "_Nume de utilizator:"
 
 msgid "(Optional) A_lias:"
-msgstr "A_lias (op�ional):"
+msgstr "_Alias (op�ional):"
 
 msgid "Add buddy to _group:"
-msgstr "Adaug� contactul 樽n _grupul:"
+msgstr "_Grup:"
 
 msgid "This protocol does not support chat rooms."
 msgstr "Acest protocol nu suport� camere de chat."
@@ -11810,20 +11823,20 @@
 "Please enter an alias, and the appropriate information about the chat you "
 "would like to add to your buddy list.\n"
 msgstr ""
-"Introduce�i un alias �i informa�iile necesare pentru acel chat pe care "
-"dori�i s�-l ad�uga�i 樽n lista de contacte.\n"
+"Introduce�i un alias �i informa�iile necesare pentru chat-ul pe care dori�i "
+"s�-l ad�uga�i 樽n lista de contacte.\n"
 
 msgid "A_lias:"
-msgstr "A_lias:"
+msgstr "_Alias:"
 
 msgid "_Group:"
 msgstr "_Grup:"
 
 msgid "Auto_join when account connects."
-msgstr "Intr� a_utomat la autentificarea contului."
+msgstr "I_ntr� automat la autentificarea contului."
 
 msgid "_Remain in chat after window is closed."
-msgstr "_R�m但i 樽n chat dup� 樽nchiderea ferestrei."
+msgstr "R�m但i 樽n chat _dup� 樽nchiderea ferestrei."
 
 msgid "Please enter the name of the group to be added."
 msgstr "Introduce�i numele grupului de ad�ugat."
@@ -11934,7 +11947,7 @@
 msgstr "/Discu�ie/_Mesaj nou..."
 
 msgid "/Conversation/Join a _Chat..."
-msgstr "/Discu�ie/Intrare 樽ntr-un _chat..."
+msgstr "/Discu�ie/Intrare 樽ntr-un c_hat..."
 
 msgid "/Conversation/_Find..."
 msgstr "/Discu�ie/C_aut�..."
@@ -11961,10 +11974,10 @@
 msgstr "/Discu�ie/Media/Ap_el audio\\/video"
 
 msgid "/Conversation/Se_nd File..."
-msgstr "/Discu�ie/_Trimite un fi�ier..."
+msgstr "/Discu�ie/Trimite un _fi�ier..."
 
 msgid "/Conversation/Get _Attention"
-msgstr "/Discu�ie/Cere _aten�ie"
+msgstr "/Discu�ie/Cere a_ten�ie"
 
 msgid "/Conversation/Add Buddy _Pounce..."
 msgstr "/Discu�ie/Adaug� 樽_nt但mpinare..."
@@ -11979,7 +11992,7 @@
 msgstr "/Discu�ie/Mai m_ult"
 
 msgid "/Conversation/Al_ias..."
-msgstr "/Discu�ie/Al_ias..."
+msgstr "/Discu�ie/A_lias..."
 
 msgid "/Conversation/_Block..."
 msgstr "/Discu�ie/_Blocheaz�..."
@@ -12170,7 +12183,7 @@
 msgstr "Nu 樽n fereastra chat-urilor"
 
 msgid "New window"
-msgstr "�n fereastr� nou�"
+msgstr "�n ferestre noi"
 
 msgid "By group"
 msgstr "Dup� grup"
@@ -12229,9 +12242,6 @@
 msgid "Fatal Error"
 msgstr "Erori fatale"
 
-msgid "bug master"
-msgstr "admin al rapoartelor de erori"
-
 msgid "artist"
 msgstr "artist"
 
@@ -12411,6 +12421,9 @@
 msgid "Maithili"
 msgstr "Maithili"
 
+msgid "Meadow Mari"
+msgstr "Meadow Mari"
+
 msgid "Macedonian"
 msgstr "Macedonean�"
 
@@ -12826,64 +12839,64 @@
 msgstr "F�r� iconi�e 樽n _selec�ie"
 
 msgid "Hyperlink color"
-msgstr "Culoare adres�"
+msgstr "Culoarea adreselor web"
 
 msgid "Color to draw hyperlinks."
-msgstr "Culoare pentru afi�area adreselor."
+msgstr "Culoarea pentru afi�area adreselor web."
 
 msgid "Hyperlink visited color"
-msgstr "Culoare adres� web"
+msgstr "Culoarea adreselor web vizitate"
 
 msgid "Color to draw hyperlink after it has been visited (or activated)."
-msgstr "Culoare pentru afi�area adreselor web vizitate (ori activate)."
+msgstr "Culoarea pentru afi�area adreselor web vizitate (ori activate)."
 
 msgid "Hyperlink prelight color"
-msgstr "Culoare eviden�iere adres�"
+msgstr "Culoarea de eviden�iere a adresei"
 
 msgid "Color to draw hyperlinks when mouse is over them."
-msgstr "Culoare pentru afi�area adreselor sub cursorul de maus."
+msgstr "Culoarea de afi�are a adreselor web sub cursorul de maus."
 
 msgid "Sent Message Name Color"
-msgstr "Culoare pentru mesaje trimise"
+msgstr "Culoarea mesajelor trimise"
 
 msgid "Color to draw the name of a message you sent."
-msgstr "Culoare de utilizat pentru numele mesajelor pe care le trimite�i."
+msgstr "Culoarea de utilizat pentru numele mesajelor pe care le trimite�i."
 
 msgid "Received Message Name Color"
-msgstr "Culoare pentru mesaje primite"
+msgstr "Culoarea mesajelor primite"
 
 msgid "Color to draw the name of a message you received."
-msgstr "Culoare de utilizat pentru numele mesajelor pe care le primi�i."
+msgstr "Culoarea de utilizat pentru numele mesajelor pe care le primi�i."
 
 msgid "\"Attention\" Name Color"
-msgstr "Culoare de aten�ionare"
+msgstr "Culoarea de aten�ionare"
 
 msgid "Color to draw the name of a message you received containing your name."
-msgstr "Culoare de utilizat pentru numele mesajelor ce v� pomenesc numele."
+msgstr "Culoarea de utilizat pentru numele mesajelor ce v� pomenesc numele."
 
 msgid "Action Message Name Color"
-msgstr "Culoare pentru mesajele comenzi"
+msgstr "Culoarea pentru mesajele comenzi"
 
 msgid "Color to draw the name of an action message."
-msgstr "Culoare de utilizat pentru numele mesajelor de tip comand�."
+msgstr "Culoarea de utilizat pentru numele mesajelor de tip comand�."
 
 msgid "Action Message Name Color for Whispered Message"
-msgstr "Culoare pentru mesajele comenzi 樽n mod discret"
+msgstr "Culoarea pentru mesajele comenzi 樽n mod discret"
 
 msgid "Color to draw the name of a whispered action message."
-msgstr "Culoare de utilizat pentru numele mesajelor discrete de ac�iune."
+msgstr "Culoarea de utilizat pentru numele mesajelor discrete de ac�iune."
 
 msgid "Whisper Message Name Color"
-msgstr "Culoare pentru mesajele discrete"
+msgstr "Culoarea mesajelor discrete"
 
 msgid "Color to draw the name of a whispered message."
-msgstr "Culoare de utilizat pentru numele mesajelor discrete."
+msgstr "Culoarea de utilizat pentru numele mesajelor discrete."
 
 msgid "Typing notification color"
 msgstr "Culoarea mesajelor de notificare"
 
 msgid "The color to use for the typing notification"
-msgstr "Culoare de utilizat pentru notificarea tast�rii"
+msgstr "Culoarea de utilizat pentru notific�rile de tastare"
 
 msgid "Typing notification font"
 msgstr "Fontul mesajelor de notificare"
@@ -12951,7 +12964,7 @@
 msgstr "Inserare adres�"
 
 msgid "_Insert"
-msgstr "Inserea_z�"
+msgstr "Ins_erare"
 
 #, c-format
 msgid "Failed to store image: %s\n"
@@ -13009,7 +13022,7 @@
 msgstr "Nume font"
 
 msgid "Foreground Color"
-msgstr "Culoare text"
+msgstr "Culoarea textului"
 
 msgid "Reset Formatting"
 msgstr "F�r� formatare"
@@ -13051,16 +13064,16 @@
 msgstr "_Nume font"
 
 msgid "Foreground _color"
-msgstr "Culoare te_xt"
+msgstr "Culoarea te_xtului"
 
 msgid "Bac_kground color"
-msgstr "Culoare f_undal"
+msgstr "Culoarea f_undalului"
 
 msgid "_Image"
 msgstr "_Imagine"
 
 msgid "_Link"
-msgstr "_Link"
+msgstr "_Adres� web"
 
 msgid "_Horizontal rule"
 msgstr "Linie _orizontal�"
@@ -13360,13 +13373,13 @@
 msgstr "O_prirea din tastare"
 
 msgid "Sends a _message"
-msgstr "Trimiterea unui _mesaj"
+msgstr "Tr_imiterea unui mesaj"
 
 msgid "Ope_n an IM window"
 msgstr "Desc_hide o discu�ie"
 
 msgid "_Pop up a notification"
-msgstr "Deschide _o fereastr� de notificare"
+msgstr "De_schide o fereastr� de notificare"
 
 msgid "Send a _message"
 msgstr "Trimite un mesa_j"
@@ -13387,13 +13400,13 @@
 msgstr "_Testare"
 
 msgid "P_ounce only when my status is not Available"
-msgstr "�nt但mpinare doar 樽n starea de _indisponibilitate"
+msgstr "�nt但mpinare doar 樽n starea de indisponibi_litate"
 
 msgid "_Recurring"
 msgstr "Re_curent�"
 
 msgid "Pounce Target"
-msgstr "�int� 樽nt但mpinare"
+msgstr "�inta 樽nt但mpin�rii"
 
 msgid "Started typing"
 msgstr "A 樽nceput s� tasteze"
@@ -13493,7 +13506,7 @@
 msgstr "Pentru mesajele necitite"
 
 msgid "Conversation Window"
-msgstr "Fereastra de discu�ii"
+msgstr "Fereastr� de discu�ii"
 
 msgid "_Hide new IM conversations:"
 msgstr "Ascunde discu�iile _noi:"
@@ -13515,7 +13528,7 @@
 msgstr "Arat� _butoanele de 樽nchidere a taburilor"
 
 msgid "_Placement:"
-msgstr "_Plasament:"
+msgstr "_Plasare:"
 
 msgid "Top"
 msgstr "Sus"
@@ -13536,7 +13549,7 @@
 msgstr "Vertical in dreapta"
 
 msgid "N_ew conversations:"
-msgstr "D_iscu�ii noi:"
+msgstr "Di_scu�ii noi:"
 
 msgid "Show _formatting on incoming messages"
 msgstr "_P�streaz� formatarea mesajelor primite"
@@ -13554,7 +13567,7 @@
 msgstr "Notific� contactele c但nd le scri_u"
 
 msgid "Highlight _misspelled words"
-msgstr "_Eviden�iaz� gre�elile de ortografie"
+msgstr "E_viden�iaz� gre�elile de ortografie"
 
 msgid "Use smooth-scrolling"
 msgstr "Derulare cu efect"
@@ -13598,7 +13611,7 @@
 msgstr "Utilizeaz� adresa IP _autodetectat�: %s"
 
 msgid "ST_UN server:"
-msgstr "Server ST_UN:"
+msgstr "Ser_ver STUN:"
 
 msgid "<span style=\"italic\">Example: stunserver.org</span>"
 msgstr "<span style=\"italic\">Exemplu: stunserver.org</span>"
@@ -13610,7 +13623,7 @@
 msgstr "Porturi"
 
 msgid "_Enable automatic router port forwarding"
-msgstr "Acti_veaz� automat ��port forwarding�� 樽n ruter"
+msgstr "Activea_z� automat ��port forwarding�� 樽n ruter"
 
 msgid "_Manually specify range of ports to listen on:"
 msgstr "_Specifica�i intervalul de porturi:"
@@ -13632,7 +13645,7 @@
 msgstr "Port _UDP:"
 
 msgid "Use_rname:"
-msgstr "_Nume utilizator:"
+msgstr "_Nume de utilizator:"
 
 msgid "Pass_word:"
 msgstr "_Parol�:"
@@ -13684,7 +13697,7 @@
 msgstr "Chromium (chrome)"
 
 msgid "Manual"
-msgstr "Manual"
+msgstr "Personalizat"
 
 msgid "Browser Selection"
 msgstr "Navigator preferat"
@@ -13702,23 +13715,23 @@
 msgstr "_Navigator:"
 
 msgid "_Open link in:"
-msgstr "_Deschide adresa:"
+msgstr "_Deschide adresele web:"
 
 msgid "Browser default"
-msgstr "Dup� cum e setat navigatorul"
+msgstr "Respect但nd op�iunile navigatorului"
 
 msgid "Existing window"
-msgstr "�ntr-o fereastr� existent�"
+msgstr "�n ferestre existente"
 
 msgid "New tab"
-msgstr "�ntr-un tab nou"
+msgstr "�n taburi noi"
 
 #, c-format
 msgid ""
 "_Manual:\n"
 "(%s for URL)"
 msgstr ""
-"_Manual:\n"
+"_Personalizat:\n"
 "(%s pentru adres�)"
 
 msgid "Proxy Server"
@@ -13748,7 +13761,7 @@
 msgstr "P_ort:"
 
 msgid "User_name:"
-msgstr "_Nume utilizator:"
+msgstr "_Nume de utilizator:"
 
 msgid "Log _format:"
 msgstr "_Formatul 樽nregistr�rilor:"
@@ -13803,7 +13816,7 @@
 "Sound c_ommand:\n"
 "(%s for filename)"
 msgstr ""
-"Comand� de _redare sunet\n"
+"Comand� de _redare audio\n"
 "(%s pentru numele fi�ierului)"
 
 msgid "M_ute sounds"
@@ -13853,7 +13866,7 @@
 msgstr "Utilizeaz� _ultimul status"
 
 msgid "Status to a_pply at startup:"
-msgstr "Status de utilizat la _pornire:"
+msgstr "Status de utili_zat la pornire:"
 
 msgid "Interface"
 msgstr "Interfa��"
@@ -14006,7 +14019,7 @@
 msgstr "Editare iconi�� simbolic�"
 
 msgid "Add Smiley"
-msgstr "Ad�ugare iconi�� simbolic�"
+msgstr "Ad�uga�i o iconi�� simbolic�"
 
 msgid "_Image:"
 msgstr "_Imagine:"
@@ -14016,7 +14029,7 @@
 msgstr "_Textul combina�iei de semne"
 
 msgid "Smiley"
-msgstr "Iconi�� simbolice"
+msgstr "Iconi�� simbolic�"
 
 msgid "Shortcut Text"
 msgstr "Textul combina�iei de semne"
@@ -14078,7 +14091,7 @@
 "use it as the buddy icon for this user."
 msgstr ""
 "Pute�i trimite aceast� imagine printr-un transfer de fi�iere, o pute�i "
-"insera 樽n acest mesaj sau o pute�i seta ca avatar pentru acest contact."
+"insera 樽n acest mesaj sau o pute�i utiliza ca avatar pentru acest contact."
 
 msgid "Set as buddy icon"
 msgstr "Utilizeaz� ca avatar"
@@ -14090,20 +14103,20 @@
 msgstr "Insereaz� 樽n mesaj"
 
 msgid "Would you like to set it as the buddy icon for this user?"
-msgstr "Dori�i s� o seta�i ca avatar pentru acest contact?"
+msgstr "Dori�i s� o utiliza�i ca avatar pentru acest contact?"
 
 msgid ""
 "You can send this image as a file transfer, or use it as the buddy icon for "
 "this user."
 msgstr ""
 "Pute�i trimite aceast� imagine printr-un transfer de fi�iere sau o pute�i "
-"seta ca avatar pentru acest contact."
+"utiliza ca avatar pentru acest contact."
 
 msgid ""
 "You can insert this image into this message, or use it as the buddy icon for "
 "this user"
 msgstr ""
-"Pute�i insera imaginea 樽n acest mesaj sau o pute�i seta ca avatar pentru "
+"Pute�i insera imaginea 樽n acest mesaj sau o pute�i utiliza ca avatar pentru "
 "acest contact."
 
 #. I don't know if we really want to do anything here.  Most of
@@ -14145,7 +14158,7 @@
 msgstr "Nu s-a putut utiliza iconi�a"
 
 msgid "_Open Link"
-msgstr "_Deschide linkul"
+msgstr "_Deschide adresa"
 
 msgid "_Copy Link Location"
 msgstr "_Copiaz� adresa"
@@ -14192,7 +14205,7 @@
 msgstr "_Invit�"
 
 msgid "_Modify..."
-msgstr "_Modific�..."
+msgstr "E_ditare..."
 
 msgid "_Add..."
 msgstr "_Adaug�..."
@@ -14254,7 +14267,7 @@
 #. *< name
 #. *< version
 msgid "Contact Availability Prediction plugin."
-msgstr "Modul pentru disponibilitatea contactelor"
+msgstr "Modul pentru prevederea disponibilit��ii contactelor."
 
 #. *  summary
 msgid "Displays statistical information about your buddies' availability"
@@ -14391,7 +14404,7 @@
 msgstr "Descoperire de servicii"
 
 msgid "_Browse"
-msgstr "_Navigare:"
+msgstr "_Navigare"
 
 msgid "Server does not exist"
 msgstr "Server inexistent"
@@ -14403,7 +14416,7 @@
 msgstr "Descoperire de servicii XMPP"
 
 msgid "Allows browsing and registering services."
-msgstr "Permite navigarea �i 樽nregistrarea serviciilor"
+msgstr "Permite navigarea �i 樽nregistrarea de servicii XMPP."
 
 msgid ""
 "This plugin is useful for registering with legacy transports or other XMPP "
@@ -14416,7 +14429,7 @@
 msgstr "Dup� num�rul discu�iilor"
 
 msgid "Conversation Placement"
-msgstr "Plasament discu�ii"
+msgstr "Plasarea discu�iilor"
 
 #. Translators: "New conversations" should match the text in the preferences dialog and "By conversation count" should be the same text used above
 msgid ""
@@ -14440,12 +14453,12 @@
 #. *< priority
 #. *< id
 msgid "ExtPlacement"
-msgstr "Ferestre extra"
+msgstr "Plasare extra"
 
 #. *< name
 #. *< version
 msgid "Extra conversation placement options."
-msgstr "Op�iuni de plasare a discu�iilor 樽n plus."
+msgstr "Op�iuni suplimentare de plasare a discu�iilor."
 
 #. *< summary
 #. *  description
@@ -14651,7 +14664,7 @@
 msgstr "Adaug� o c�su�� 樽n lista de contacte care v� anun�� mailurile noi."
 
 msgid "Markerline"
-msgstr "Marcaj mesaje noi"
+msgstr "Marcaj pentru mesaje noi"
 
 msgid "Draw a line to indicate new messages in a conversation."
 msgstr "Marcheaz� cu o linie mesajele noi dintr-o discu�ie."
@@ -14790,7 +14803,7 @@
 #. *< priority
 #. *< id
 msgid "Message Notification"
-msgstr "Notific�ri mesaje"
+msgstr "Notific�ri pentru mesaje"
 
 #. *< name
 #. *< version
@@ -14827,10 +14840,10 @@
 "- Trimite un mesaj contactelor din list� atunci c但nd se autentific�."
 
 msgid "Hyperlink Color"
-msgstr "Culoare adres� web"
+msgstr "Culoarea adresei web"
 
 msgid "Visited Hyperlink Color"
-msgstr "Culoare adres� web vizitat�"
+msgstr "Culoarea adresei web vizitate"
 
 msgid "Highlighted Message Name Color"
 msgstr "Numele culorii pentru eviden�ierea mesajelor"
@@ -14845,13 +14858,13 @@
 msgstr "Introducere text"
 
 msgid "Conversation History"
-msgstr "Istoricul discu�iei"
+msgstr "�nregistr�ri de discu�ii"
 
 msgid "Request Dialog"
-msgstr "Dialog cerere"
+msgstr "Fereastr� de dialog"
 
 msgid "Notify Dialog"
-msgstr "Dialog notificare"
+msgstr "Fereastr� de notificare"
 
 msgid "Select Color"
 msgstr "Alege�i o culoare"
@@ -14865,10 +14878,10 @@
 msgstr "Alege�i un font pentru %s"
 
 msgid "GTK+ Interface Font"
-msgstr "Font interfa�� GTK+"
+msgstr "Fontul interfe�ei GTK+"
 
 msgid "GTK+ Text Shortcut Theme"
-msgstr "Tem� combina�ii de taste GTK+ Text"
+msgstr "Tema de combina�ii de taste GTK+ Text"
 
 msgid "Disable Typing Notification Text"
 msgstr "Dezactiveaz� textul notific�rii la tastare"
@@ -14896,7 +14909,7 @@
 msgstr "Recite�te fi�ierele gtkrc"
 
 msgid "Pidgin GTK+ Theme Control"
-msgstr "Control tem� GTK+ Pidgin"
+msgstr "Modificare a temei GTK+ 樽n Pidgin"
 
 msgid "Provides access to commonly used gtkrc settings."
 msgstr "Permite accesul la cele mai uzuale op�iuni gtkrc."
@@ -14935,7 +14948,7 @@
 #. *< priority
 #. *< id
 msgid "Release Notification"
-msgstr "Notific�ri versiuni noi"
+msgstr "Notific�ri pentru versiuni noi"
 
 #. *< name
 #. *< version
@@ -14965,7 +14978,7 @@
 #. *< name
 #. *< version
 msgid "Conversation Window Send Button."
-msgstr "Buton de trimitere 樽n fereastra de discu�ii"
+msgstr "Buton de trimitere 樽n fereastra de discu�ii."
 
 #. *< summary
 msgid ""
@@ -15019,10 +15032,10 @@
 msgstr "Activeaz� corectarea ultimului cuv但nt la trimitere"
 
 msgid "Text replacement"
-msgstr "Corecturi text"
+msgstr "Corecturi de text"
 
 msgid "Replaces text in outgoing messages according to user-defined rules."
-msgstr "Schimb� mesajele trimise dup� reguli predefinite de utilizator."
+msgstr "Schimb� mesajele trimise dup� reguli predefinite."
 
 msgid "Just logged in"
 msgstr "Tocmai s-a autentificat"
@@ -15148,7 +15161,7 @@
 #. *< version
 #. *  summary
 msgid "Display iChat-style timestamps"
-msgstr "Marcaje de timp 樽n stil iChat"
+msgstr "Marcaje de timp 樽n stil iChat."
 
 #. *  description
 msgid "Display iChat-style timestamps every N minutes."
@@ -15192,7 +15205,7 @@
 #. *< priority
 #. *< id
 msgid "Message Timestamp Formats"
-msgstr "Formatare marcaje de timp"
+msgstr "Formatare pentru marcajele de timp"
 
 #. *< name
 #. *< version
@@ -15370,7 +15383,7 @@
 #. *< version
 #. *  summary
 msgid "Send and receive raw XMPP stanzas."
-msgstr "Trimitere �i primire blocuri XMPP brute"
+msgstr "Trimitere �i primire de blocuri XMPP brute"
 
 #. *  description
 msgid "This plugin is useful for debugging XMPP servers or clients."
@@ -15519,6 +15532,13 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "Nu ave釘i drepturile de acces necesare dezinstal�rii acestei aplica釘ii."
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr ""
+#~ "Refuz� automat pentru utilizatorii ce nu fac parte din lista de contacte"
+
+#~ msgid "bug master"
+#~ msgstr "admin al rapoartelor de erori"
+
 #~ msgid "Error requesting %s"
 #~ msgstr "Eroare la cererea %s"
 
--- a/po/ru.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/ru.po	Sat Feb 12 23:54:14 2011 +0000
@@ -3,14 +3,14 @@
 # Sergey Volozhanin <svo@asplinux.ru>, 2001.
 # Alexandre Prokoudine <avp@altlinux.ru>, 2003, 2004.
 # Dmitry Beloglazov <dmaa@users.sf.net>, 2004-2008.
-# �仆�仂仆 弌舒仄仂�于舒仍仂于 <samant.ua@mail.ru>, 2008-2010.
+# �仆�仂仆 弌舒仄仂�于舒仍仂于 <samant.ua@mail.ru>, 2008-2011.
 #
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: ru\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:34-0500\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
 "PO-Revision-Date: 2008-05-14 15:00+0400\n"
 "Last-Translator: �仆�仂仆 弌舒仄仂�于舒仍仂于 <samant.ua@mail.ru>\n"
 "Language-Team: \n"
@@ -1277,9 +1277,8 @@
 msgid "Someone says your username in chat"
 msgstr "��仂-�仂 仗�仂亳亰仆仂�亳� 于舒�亠 亳仄� 仗仂仍�亰仂于舒�亠仍� 于 �舒�亠"
 
-#, fuzzy
 msgid "Attention received"
-msgstr "丐�亠弍�亠��� 舒从�亳于舒�亳�"
+msgstr "�仂仍��亠仆仂 于仆亳仄舒仆亳亠"
 
 msgid "GStreamer Failure"
 msgstr "��亳弍从舒 GStreamer"
@@ -1566,10 +1565,10 @@
 msgid "TinyURL plugin"
 msgstr "�仂亟�仍� TinyURL"
 
-#, fuzzy
 msgid "When receiving a message with URL(s), use TinyURL for easier copying"
 msgstr ""
-"��亳 仗仂仍��亠仆亳亳 �仂仂弍�亠仆亳� � 舒亟�亠�舒仄亳 URL, TinyURL 亟仍� 仂弍仍亠亞��仆仆仂亞仂 从仂仗亳�仂于舒仆亳�"
+"��亳 仗仂仍��亠仆亳亳 �仂仂弍�亠仆亳� � 舒亟�亠�舒仄亳 URL, 亳�仗仂仍�亰仂于舒�� TinyURL 亟仍� 仂弍仍亠亞�亠仆亳� "
+"从仂仗亳�仂于舒仆亳�"
 
 msgid "Online"
 msgstr "� �亠�亳"
@@ -1667,13 +1666,11 @@
 msgid "Set User Info"
 msgstr "丕��舒仆仂于亳�� 仗仂仍�亰仂于舒�亠仍��从�� 亳仆�仂�仄舒�亳�"
 
-#, fuzzy
 msgid "This protocol does not support setting a public alias."
-msgstr "亅�仂� 仗�仂�仂从仂仍 仆亠 仗仂亟亟亠�亢亳于舒亠� �舒��."
-
-#, fuzzy
+msgstr "亅�仂� 仗�仂�仂从仂仍 仆亠 仗仂亟亟亠�亢亳于舒亠� ���舒仆仂于从� 仂弍�亠亞仂 亟仂仄亠仆仆仂亞仂 亳仄亠仆亳."
+
 msgid "This protocol does not support fetching the public alias."
-msgstr "亅�仂� 仗�仂�仂从仂仍 仆亠 仗仂亟亟亠�亢亳于舒亠� �舒��."
+msgstr "亅�仂� 仗�仂�仂从仂仍 仆亠 仗仂亟亟亠�亢亳于舒亠� 仗仂仍��亠仆亳亠 仂弍�亠亞仂 亟仂仄亠仆仆仂亞仂 亳仄亠仆亳."
 
 msgid "Unknown"
 msgstr "�亠亳亰于亠��仆仂"
@@ -1702,13 +1699,12 @@
 "弌亠��亳�亳从舒� 亠�� 仆亠 仗仂亟�于亠�亢亟�仆.  ��仂于亠���亠 仗�舒于亳仍�仆仂��� 亟舒�� 亳 于�亠仄亠仆亳 仆舒 "
 "于舒�亠仄 从仂仄仗���亠�亠."
 
-#, fuzzy
 msgid ""
 "The certificate has expired and should not be considered valid.  Check that "
 "your computer's date and time are accurate."
 msgstr ""
-"弌亠��亳�亳从舒� 亠�� 仆亠 仗仂亟�于亠�亢亟�仆.  ��仂于亠���亠 仗�舒于亳仍�仆仂��� 亟舒�� 亳 于�亠仄亠仆亳 仆舒 "
-"于舒�亠仄 从仂仄仗���亠�亠."
+"弌�仂从 �亠��亳�亳从舒�舒 亳���从 亳 亠亞仂 弍仂仍��亠 仆亠仍�亰� ��亳�舒�� 亟亠亶��于亳�亠仍�仆�仄.  "
+"��仂于亠���亠 仗�舒于亳仍�仆仂��� 于�亠仄亠仆亳 亳 亟舒�� 仆舒 于舒�亠仄 从仂仄仗���亠�亠."
 
 #. Translators: "domain" refers to a DNS domain (e.g. talk.google.com)
 msgid "The certificate presented is not issued to this domain."
@@ -2361,8 +2357,11 @@
 "弌仂��舒仆��� �舒亶仍� 于\n"
 "(�从舒亢亳�亠 仗仂仍仆�亶 仗���)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "��于亠�亞舒�� 舒于�仂仄舒�亳�亠�从亳 仂� 仗仂仍�亰仂于舒�亠仍亠亶 仆亠 亳亰 �仗亳�从舒 �仂弍亠�亠亟仆亳从仂于"
+#, fuzzy
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr "��亳 仗仂���仗仍亠仆亳亳 亰舒仗�仂�舒 仗亠�亠亟舒�亳 �舒亶仍仂于 仂� %s"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2375,6 +2374,10 @@
 msgid "Create a new directory for each user"
 msgstr "弌仂亰亟舒亶�亠 亟仍� 从舒亢亟仂亞仂 仗仂仍�亰仂于舒�亠仍� 仆仂于�� 仗舒仗从�"
 
+#, fuzzy
+msgid "Escape the filenames"
+msgstr "%s 仂�仄亠仆亳仍 仗亠�亠亟舒�� �舒亶仍舒"
+
 msgid "Notes"
 msgstr "�舒仄亠�从亳"
 
@@ -3838,7 +3841,10 @@
 msgstr ""
 "弌亠�于亠� ��亠弍�亠� 舒��亠仆�亳�亳从舒�亳� 仗�仂���仄 �亠从��仂仄 �亠�亠亰 仆亠�亳��仂于舒仆仆�亶 仗仂�仂从"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "�亠于亠�仆�亶 仂�从仍亳从 仂� �亠�于亠�舒"
 
@@ -3900,21 +3906,20 @@
 "The server does support channel binding, but did not appear to advertise "
 "it.  This indicates a likely MITM attack"
 msgstr ""
-
-#, fuzzy
+"亅�仂� �亠�于亠� 仆亠 仗仂亟亟亠�亢亳于舒亠� 仗�亳于�亰从� 从舒仆舒仍舒, 仆仂 仆亠 于�亞仍�亟亳� 亠亞仂 �亠从仍舒仄仂亶. "
+"亅�仂 亞仂于仂�亳� 仂 于仂亰仄仂亢仆仂亶 MITM 舒�舒从亠"
+
 msgid "Server does not support channel binding"
-msgstr "弌亠�于亠� 仆亠 仗仂亟亟亠�亢亳于舒亠� 弍仍仂从亳�仂于从�"
-
-#, fuzzy
+msgstr "弌亠�于亠� 仆亠 仗仂亟亟亠�亢亳于舒亠� 仗�亳于�亰从� 从舒仆舒仍舒"
+
 msgid "Unsupported channel binding method"
-msgstr "�亠仗仂亟亟亠�亢亳于舒亠仄舒� 从仂亟亳�仂于从舒"
+msgstr "�亠仗仂亟亟亠�亢亳于舒亠仄�亶 仄亠�仂亟 仗�亳于�亰从亳 从舒仆舒仍舒"
 
 msgid "User not found"
 msgstr "�仂仍�亰仂于舒�亠仍� 仆亠 仆舒亶亟亠仆"
 
-#, fuzzy
 msgid "Invalid Username Encoding"
-msgstr "�亠于亠�仆仂亠 亳仄� 仗仂仍�亰仂于舒�亠仍�"
+msgstr "�亠于亠�仆舒� 从仂亟亳�仂于从舒 亳仄� 仗仂仍�亰仂于舒�亠仍�"
 
 msgid "Resource Constraint"
 msgstr "�亠亟仂��舒�仂从 �亠����仂于"
@@ -4367,15 +4372,13 @@
 msgstr "丐亠从�� 仆舒���仂亠仆亳�"
 
 msgid "Allow Buzz"
-msgstr "�舒亰�亠�亳�� �仗仍亠�仆亳"
-
-#, fuzzy
+msgstr "�舒亰�亠�亳�� 仂从仍亳从亳"
+
 msgid "Mood Name"
-msgstr "���亠��于仂"
-
-#, fuzzy
+msgstr "�仄� 仆舒���仂亠仆亳�"
+
 msgid "Mood Comment"
-msgstr "�仂仄仄亠仆�舒�亳亶 �仂弍亠�亠亟仆亳从舒"
+msgstr "�仂仄仄亠仆�舒�亳亶 仆舒���仂亠仆亳�"
 
 #. primitive
 #. ID
@@ -4631,7 +4634,7 @@
 
 #, c-format
 msgid "%s has buzzed you!"
-msgstr "%s 仗仂亰于舒仍 于舒�!"
+msgstr "%s 仂从仍亳从仆�仍 于舒�!"
 
 #, c-format
 msgid "Buzzing %s..."
@@ -4645,19 +4648,18 @@
 msgid "Unable to initiate media with %s: user is not online"
 msgstr "�弍仄亠仆 �舒亶仍舒仄亳 � %s 仆亠 �亟舒����: 仗仂仍�亰仂于舒�亠仍� 仆亠 于 �亠�亳"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to initiate media with %s: not subscribed to user presence"
-msgstr ""
-"�弍仄亠仆 �舒亶仍舒仄亳 � %s 仆亠 �亟舒����: 仆亠� 仗仂亟仗亳�从亳 仆舒 仗�亳�����于亳亠 仗仂仍�亰仂于舒�亠仍�"
+msgstr "�弍仄亠仆 �舒亶仍舒仄亳 � %s 仆亠 �亟舒仍��: 仆亠� 仗仂亟仗亳�从亳 仆舒 仗�亳�����于亳亠 仗仂仍�亰仂于舒�亠仍�"
 
 msgid "Media Initiation Failed"
 msgstr "�弍仄亠仆 �舒亶仍舒仄亳 仆亠 �亟舒仍��"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Please select the resource of %s with which you would like to start a media "
 "session."
-msgstr "��弍亠�亳�亠 �亠���� %s, 从仂�仂�仂仄� 于� �仂�亠仍亳 弍� 仂�仗�舒于亳�� �舒亶仍"
+msgstr "��弍亠�亳�亠 �亠���� %s, � 从仂�仂��仄 于� �仂�亠仍亳 弍� 仆舒�舒�� 仂弍仄亠仆 �舒亶仍舒仄亳"
 
 msgid "Select a Resource"
 msgstr "��弍�舒�� �亠����"
@@ -4723,11 +4725,10 @@
 msgstr "仗�仂亰于仂仆 &lt;jid&gt;:\t��仂亰于仂仆亳�� 仗仂仍�亰仂于舒�亠仍�/从仂仄仗仂仆亠仆�/�亠�于亠�."
 
 msgid "buzz: Buzz a user to get their attention"
-msgstr "���仗: 仂从仍亳从仆��� 仗仂仍�亰仂于舒�亠仍�, ��仂弍� 仗�亳于仍亠�� 亠亞仂 于仆亳仄舒仆亳亠"
-
-#, fuzzy
+msgstr "仂从仍亳从: 仂从仍亳从仆��� 仗仂仍�亰仂于舒�亠仍�, ��仂弍� 仗�亳于仍亠�� 亠亞仂 于仆亳仄舒仆亳亠"
+
 msgid "mood: Set current user mood"
-msgstr "��弍亠�亳�亠 从仂��亠从�仆仂亞仂 仗仂仍�亰仂于舒�亠仍�"
+msgstr "仆舒���仂亠仆亳亠: 丕��舒仆仂于亳�亠 �亠从��亠亠 仆舒���仂亠仆亳亠 仗仂仍�亰仂于舒�亠仍�"
 
 msgid "Extended Away"
 msgstr "�舒��亳�亠仆仆�亶 \"��仂��仍\""
@@ -4749,20 +4750,17 @@
 msgid "Domain"
 msgstr "�仂仄亠仆"
 
-#, fuzzy
 msgid "Require encryption"
-msgstr "丐�亠弍仂于舒�� 舒于�仂�亳亰舒�亳�"
-
-#, fuzzy
+msgstr "丐�亠弍仂于舒�� �亳��仂于舒仆亳亠"
+
 msgid "Use encryption if available"
-msgstr "�仂仍�亰仂于舒�亠仍��从舒� 亳仆�仂�仄舒�亳� 亟仍� %s 仆亠亟仂���仗仆舒"
+msgstr "��仍亳 亟仂���仗仆仂, 亳�仗仂仍�亰仂于舒�� �亳��仂于舒仆亳亠"
 
 msgid "Use old-style SSL"
-msgstr ""
-
-#, fuzzy
+msgstr "��仗仂仍�亰仂于舒�� SSL ��舒�仂亞仂 仂弍�舒亰�舒"
+
 msgid "Connection security"
-msgstr "弌弍�仂� �仂亠亟亳仆亠仆亳�"
+msgstr "�亠亰仂仗舒�仆仂��� �仂亠亟亳仆亠仆亳�"
 
 msgid "Allow plaintext auth over unencrypted streams"
 msgstr "�舒亰�亠�亳�� 亳亟亠仆�亳�亳从舒�亳� 仗�仂���仄 �亠从��仂仄 �亠�亠亰 仆亠�亳��仂于舒仆仆�亠 仗仂�仂从亳"
@@ -4892,31 +4890,26 @@
 msgid "Please select the resource of %s to which you would like to send a file"
 msgstr "��弍亠�亳�亠 �亠���� %s, 从仂�仂�仂仄� 于� �仂�亠仍亳 弍� 仂�仗�舒于亳�� �舒亶仍"
 
-#, fuzzy
 msgid "Afraid"
-msgstr "��舒弍�从亳亶"
-
-#, fuzzy
+msgstr "�仂�亰仍亳于�亶"
+
 msgid "Amazed"
-msgstr "弌��亟��亳亶��"
-
-#, fuzzy
+msgstr "�亰�仄仍�仆仆�亶"
+
 msgid "Amorous"
-msgstr "�亠仍亳从仂仍亠仗仆�亶"
+msgstr "�仍�弍�亳于�亶"
 
 msgid "Angry"
 msgstr "�舒��亠�亢亠仆仆�亶"
 
-#, fuzzy
 msgid "Annoyed"
-msgstr "�亰亞仆舒仆"
+msgstr "�舒亰亟�舒亢�仆仆�亶"
 
 msgid "Anxious"
 msgstr "�亰舒弍仂�亠仆仆�亶"
 
-#, fuzzy
 msgid "Aroused"
-msgstr "�� 仂�仗�舒于仍�亠�亠"
+msgstr "�仂亰弍�亢亟�仆仆�亶"
 
 msgid "Ashamed"
 msgstr "弌��亟��亳亶��"
@@ -4924,82 +4917,65 @@
 msgid "Bored"
 msgstr "弌从��舒��亳亶"
 
-#, fuzzy
 msgid "Brave"
-msgstr "弌仂��舒仆亳��"
-
-#, fuzzy
+msgstr "丱�舒弍��亶"
+
 msgid "Calm"
-msgstr "弌�亠�舒"
-
-#, fuzzy
+msgstr "丐亳�亳亶"
+
 msgid "Cautious"
-msgstr "丼舒��"
-
-#, fuzzy
+msgstr "���仂�仂亢仆�亶"
+
 msgid "Cold"
-msgstr "�亳�仆�亶"
-
-#, fuzzy
+msgstr "丱仂仍仂亟仆�亶"
+
 msgid "Confident"
-msgstr "�仂仆�仍亳从�"
-
-#, fuzzy
+msgstr "丕于亠�亠仆仆�亶"
+
 msgid "Confused"
-msgstr "��仂亟仂仍亢亳��"
-
-#, fuzzy
+msgstr "�弍亠�从��舒亢亠仆仆�亶"
+
 msgid "Contemplative"
-msgstr "�仂仆�舒从�"
-
-#, fuzzy
+msgstr "�舒亟�仄�亳于�亶"
+
 msgid "Contented"
-msgstr "弌仂亠亟亳仆亠仆亳亠 ���舒仆仂于仍亠仆仂"
-
-#, fuzzy
+msgstr "�仂于仂仍�仆�亶"
+
 msgid "Cranky"
-msgstr "�仂仄仗舒仆亳�"
+msgstr "�舒仗�亳亰仆�亶"
 
 msgid "Crazy"
-msgstr ""
-
-#, fuzzy
+msgstr "弌�仄舒��亠亟�亳亶"
+
 msgid "Creative"
-msgstr "弌仂亰亟舒��"
-
-#, fuzzy
+msgstr "丐于仂��亠�从亳亶"
+
 msgid "Curious"
-msgstr "�亠仍亳从仂仍亠仗仆�亶"
-
-#, fuzzy
+msgstr "��弍仂仗��仆�亶"
+
 msgid "Dejected"
-msgstr "��从仍仂仆亠仆仂"
-
-#, fuzzy
+msgstr "丕亟����仆仆�亶"
+
 msgid "Depressed"
-msgstr "丕亟舒仍亠仆仂"
-
-#, fuzzy
+msgstr "�仂亟舒于仍亠仆仆�亶"
+
 msgid "Disappointed"
-msgstr "弌仂亠亟亳仆亠仆亳亠 �舒亰仂�于舒仆仂."
+msgstr "�舒亰仂�舒�仂于舒仆仆�亶"
 
 msgid "Disgusted"
-msgstr ""
-
-#, fuzzy
+msgstr "��于�舒�舒��亳亶"
+
 msgid "Dismayed"
-msgstr "��从仍��亠仆仂"
-
-#, fuzzy
+msgstr "����亠于仂亢亠仆仆�亶"
+
 msgid "Distracted"
-msgstr "�亠亰舒于亳�亳仄�亶"
+msgstr "�舒��亠�仆仆�亶"
 
 msgid "Embarrassed"
-msgstr ""
-
-#, fuzzy
+msgstr "弌�亠�仆亳�亠仍�仆�亶"
+
 msgid "Envious"
-msgstr "�亰舒弍仂�亠仆仆�亶"
+msgstr "�舒于亳��仍亳于�亶"
 
 msgid "Excited"
 msgstr "�仂亰弍�亢亟�仆仆�亶"
@@ -5469,9 +5445,8 @@
 msgid "Other Locations"
 msgstr "�亠��仂仗仂仍仂亢亠仆亳亠 仗仂仍�亰仂于舒�亠仍�"
 
-#, fuzzy
 msgid "You can sign out from other locations here"
-msgstr "�� �亢亠 仂�从�亟舒-�仂 仗仂亟从仍��亠仆�"
+msgstr "�亟亠�� �� 仄仂亢亠�亠 仂�从仍��亳���� 亳亰 亟��亞亳� 仄亠��"
 
 #. TODO: Due to limitations in our current request field API, the
 #. following string will show up with a trailing colon.  This should
@@ -5479,18 +5454,16 @@
 #. a separate purple_request_field_label_new_without_colon function,
 #. or by never automatically adding the colon and requiring that
 #. callers add the colon themselves.
-#, fuzzy
 msgid "You are not signed in from any other locations."
-msgstr "�� �亢亠 仂�从�亟舒-�仂 仗仂亟从仍��亠仆�"
-
-#, fuzzy
+msgstr "�� 仆亳仂�从�亟舒 仆亠 于仂�仍亳 于 �亠��."
+
 msgid "Allow multiple logins?"
-msgstr "�舒亰�亠�亳�� 仂亟仆仂于�亠仄亠仆仆�亶 于�仂亟 � �舒亰仆�� 仄亠��"
+msgstr "�舒亰�亠�亳�� 仂亟仆仂于�亠仄亠仆仆�亠 于�仂亟� � �舒亰仆�� 仄亠��?"
 
 msgid ""
 "Do you want to allow or disallow connecting from multiple locations "
 "simultaneously?"
-msgstr ""
+msgstr "�� �舒亰�亠�舒亠�亠 仂亟仆仂于�亠仄亠仆仆�亶 于�仂亟 于 �亠�� 亳亰 �舒亰仆�� 仄亠�� 亳仍亳 仆亠�?"
 
 msgid "Allow"
 msgstr "�舒亰�亠�亳��"
@@ -5812,12 +5785,11 @@
 msgid "Show custom smileys"
 msgstr "�仂从舒亰舒�� �于仂亳 �仄舒亶仍亳从亳"
 
-#, fuzzy
 msgid "Allow direct connections"
-msgstr "�亠 �亟舒���� �仂亰亟舒�� �仂亠亟亳仆亠仆亳亠"
+msgstr "�舒亰�亠�亳�� 仗��仄�亠 �仂亠亟亳仆亠仆亳�"
 
 msgid "Allow connecting from multiple locations"
-msgstr ""
+msgstr "�舒亰�亠�亳�� �仂亠亟亳仆亠仆亳� 亳亰 仆亠�从仂仍�从亳� 仄亠��"
 
 msgid "nudge: nudge a user to get their attention"
 msgstr "仗仂亟�舒仍从亳于舒仆亳亠: 仗仂亟�仂仍从仆��� 仗仂仍�亰仂于舒�亠仍�, ��仂弍� 仗�亳于仍亠�� 亠亞仂 于仆亳仄舒仆亳亠"
@@ -5825,13 +5797,11 @@
 msgid "Windows Live ID authentication:Unable to connect"
 msgstr "���亠仆�亳�亳从舒�亳� Windows Live ID: 仆亠 仄仂亞� �仂亠亟亳仆亳����"
 
-#, fuzzy
 msgid "Windows Live ID authentication:Invalid response"
-msgstr "���亠仆�亳�亳从舒�亳� Windows Live ID: 仆亠于亠�仆�亶 仂�于亠�"
-
-#, fuzzy
+msgstr "���亠仆�亳�亳从舒�亳� Windows Live ID:仆亠从仂��亠从�仆�亶 仂�于亠�"
+
 msgid "The following users are missing from your addressbook"
-msgstr "弌仍亠亟���亳亠 仗仂仍�亰仂于舒�亠仍亳 仂������于��� 于 于舒�亠亶 舒亟�亠�仆仂亶 从仆亳亞亠"
+msgstr "弌仍亠亟���亳亠 仗仂仍�亰仂于舒�亠仍亳 亳亰 于舒�亠亶 舒亟�亠�仆仂亶 从仆亳亞亳 仂������于���"
 
 #, c-format
 msgid "Unknown error (%d): %s"
@@ -6043,9 +6013,8 @@
 msgid "The two PINs you entered do not match."
 msgstr "�于舒 于于亠亟�仆仆�� PIN-从仂亟舒 仆亠 �仂于仗舒亟舒��."
 
-#, fuzzy
 msgid "The Display Name you entered is invalid."
-msgstr "�于亠亟�仆仆仂亠 亳仄� 仆亠仗�舒于亳仍�仆仂亠."
+msgstr "�于亠亟�仆仆仂亠 �舒仄亳 亳仄� 仂�仂弍�舒亢亠仆亳� 仆亠从仂��亠从�仆仂."
 
 msgid ""
 "The birthday you entered is invalid. The correct format is: 'YYYY-MM-DD'."
@@ -6065,7 +6034,7 @@
 "�仆�仂�仄舒�亳� 仂 于舒�亠仄 仗�仂�亳仍亠 亠�� 仆亠 仗仂仍��亠仆舒. �仂亢舒仍�亶��舒, 仗仂仗�仂弍�亶�亠 仗仂亰亢亠."
 
 msgid "Your UID"
-msgstr ""
+msgstr "�舒� UID"
 
 #. pin
 #. pin (required)
@@ -6128,26 +6097,23 @@
 msgid "Logging In..."
 msgstr "��仂亟亳� 于 �亠��..."
 
-#, fuzzy
 msgid ""
 "Unable to connect to the MXit server. Please check your server settings."
 msgstr ""
-"�亠 �亟舒���� �仂亠亟亳仆亳���� � �亠�于亠�仂仄 MXit. �仂亢舒仍�亶��舒, 仗�仂于亠���亠 于舒�亳 仆舒���仂亶从亳 "
-"�亠�于亠�舒."
+"�亠 �亟舒���� �仂亠亟亳仆亳���� � �亠�于亠�仂仄 MXit. �仂亢舒仍�亶��舒, 仗�仂于亠���亠 仆舒���仂亶从亳 "
+"于舒�亠亞仂 �亠�于亠�舒."
 
 msgid "Connecting..."
 msgstr "弌仂亠亟亳仆亠仆亳亠..."
 
-#, fuzzy
 msgid "The PIN you entered has an invalid length [7-10]."
-msgstr "�于亠亟�仆仆�亶 从仍�� SecurID 仆亠于亠�仆�亶."
+msgstr "�于亠亟�仆仆�亶 �舒仄亳 PIN-从仂亟 仆亠仗�舒于亳仍�仆仂亶 亟仍亳仆� [7-10]."
 
 #. mxit login name
 msgid "MXit ID"
-msgstr ""
+msgstr "MXit ID"
 
 #. show the form to the user to complete
-#, fuzzy
 msgid "Register New MXit Account"
 msgstr "�舒�亠亞亳���亳�仂于舒�� 仆仂于�� ����仆�� 亰舒仗亳�� MXit"
 
@@ -6212,6 +6178,24 @@
 msgid "Retrieving User Information..."
 msgstr "�仂仍��亠仆亳亠 亳仆�仂�仄舒�亳亳 仂 仗仂仍�亰仂于舒�亠仍亠..."
 
+#. you were kicked
+#, fuzzy
+msgid "You have been kicked from this MultiMX."
+msgstr "�舒� 于�亞仆舒仍亳: (%s)"
+
+#, fuzzy
+msgid "was kicked"
+msgstr "�亠于亠�仆�亶 弍亳仍亠�"
+
+#, fuzzy
+msgid "_Room Name:"
+msgstr "_�仂仄仆舒�舒:"
+
+#. Display system message in chat window
+#, fuzzy
+msgid "You have invited"
+msgstr "�舒仄 仗�亳�仍舒 仗仂��舒!"
+
 msgid "Loading menu..."
 msgstr "�舒亞��亰从舒 仄亠仆�..."
 
@@ -6241,24 +6225,6 @@
 msgid "Enable splash-screen popup"
 msgstr "�从仍��亳�� 从仂仆�亠从��仆仂亠 仄亠仆� �从�舒仆舒-亰舒��舒于从亳"
 
-#. you were kicked
-#, fuzzy
-msgid "You have been kicked from this MultiMX."
-msgstr "�舒� 于�亞仆舒仍亳: (%s)"
-
-#, fuzzy
-msgid "was kicked"
-msgstr "�亠于亠�仆�亶 弍亳仍亠�"
-
-#, fuzzy
-msgid "_Room Name:"
-msgstr "_�仂仄仆舒�舒:"
-
-#. Display system message in chat window
-#, fuzzy
-msgid "You have invited"
-msgstr "�舒仄 仗�亳�仍舒 仗仂��舒!"
-
 #, fuzzy
 msgid "Last Online"
 msgstr "� �亠�亳"
@@ -7047,6 +7013,8 @@
 "You required encryption in your account settings, but one of the servers "
 "doesn't support it."
 msgstr ""
+"�� 亰舒仗�仂�亳仍亳 �亳��仂于舒仆亳亠 仆舒���仂亶从舒仄亳 ����仆仂亶 亰舒仗亳�亳, 仆仂 仂亟亳仆 亳亰 �亠�于亠�仂于 亠亞仂 "
+"仆亠 仗仂亟亟亠�亢亳于舒亠�"
 
 #. Note to translators: The first %s is a URL, the second is an
 #. error message.
@@ -7054,9 +7022,8 @@
 msgid "Error requesting %s: %s"
 msgstr "��亳弍从舒 亰舒仗�仂�舒 %s: %s"
 
-#, fuzzy
 msgid "The server returned an empty response"
-msgstr "�亠 �亟舒���� �仂亠亟亳仆亳����: �亠�于亠� 于亠�仆�仍 仗���仂亶 仂�于亠�."
+msgstr "弌亠�于亠� 仂�于亠�亳仍 �亳�亳仆仂亶"
 
 msgid ""
 "Server requested that you fill out a CAPTCHA in order to sign in, but this "
@@ -7365,6 +7332,8 @@
 "You required encryption in your account settings, but encryption is not "
 "supported by your system."
 msgstr ""
+"�� 亰舒仗�仂�亳仍亳 �亳��仂于舒仆亳亠 仆舒���仂亶从舒仄亳 ����仆仂亶 亰舒仗亳�亳, 仆仂 于舒�舒 �亳��亠仄舒 仆亠 "
+"仗仂亟亟亠�亢亳于舒亠� 亠亞仂."
 
 #, c-format
 msgid "You may be disconnected shortly.  If so, check %s for updates."
@@ -7973,75 +7942,6 @@
 "�舒��亳仆仂从 IM. �仂�从仂仍�从� 于舒� IP-舒亟�亠� 弍�亟亠� 仂�从���, ��仂 仄仂亢亠� 仗仂于仍亠�� �亞�仂亰� "
 "从仂仆�亳亟亠仆�亳舒仍�仆仂��亳."
 
-msgid "Invalid SNAC"
-msgstr "�亠于亠�仆�亶 SNAC"
-
-msgid "Server rate limit exceeded"
-msgstr "��亠于��亠仆 仗�亠亟亠仍 �从仂�仂��亳 �亠�于亠�舒"
-
-msgid "Client rate limit exceeded"
-msgstr "��亠于��亠仆 仗�亠亟亠仍 �从仂�仂��亳 从仍亳亠仆�舒"
-
-msgid "Service unavailable"
-msgstr "弌仍�亢弍舒 仆亠亟仂���仗仆舒"
-
-msgid "Service not defined"
-msgstr "弌仍�亢弍舒 仆亠 仂仗�亠亟亠仍亠仆舒"
-
-msgid "Obsolete SNAC"
-msgstr "丕��舒�亠于�亳亶 SNAC"
-
-msgid "Not supported by host"
-msgstr "�亠 仗仂亟亟亠�亢亳于舒亠��� �亰仍仂仄"
-
-msgid "Not supported by client"
-msgstr "�亠 仗仂亟亟亠�亢亳于舒亠��� 从仍亳亠仆�仂仄"
-
-msgid "Refused by client"
-msgstr "��于亠�亞仆��仂 从仍亳亠仆�仂仄"
-
-msgid "Reply too big"
-msgstr "��于亠� �仍亳�从仂仄 于亠仍亳从"
-
-msgid "Responses lost"
-msgstr "��从仍亳从亳 仗仂�亠��仆�"
-
-msgid "Request denied"
-msgstr "�舒仗�仂� 仂�于亠�亞仆��"
-
-msgid "Busted SNAC payload"
-msgstr "弌仍仂仄舒仆舒 仗仂仍亠亰仆舒� 仆舒亞��亰从舒 SNAC"
-
-msgid "Insufficient rights"
-msgstr "�亠亟仂��舒�仂�仆�亠 仗�舒于舒"
-
-msgid "In local permit/deny"
-msgstr "� 仄亠��仆仂仄 �舒亰�亠�亠仆亳亳/亰舒仗�亠�亠"
-
-msgid "Warning level too high (sender)"
-msgstr "丕�仂于亠仆� 仗�亠亟�仗�亠亢亟亠仆亳� �仍亳�从仂仄 于��仂从 (仂�仗�舒于亳�亠仍�)"
-
-msgid "Warning level too high (receiver)"
-msgstr "丕�仂于亠仆� 仗�亠亟�仗�亠亢亟亠仆亳� �仍亳�从仂仄 于��仂从 (仗仂仍��舒�亠仍�)"
-
-msgid "User temporarily unavailable"
-msgstr "�仂仍�亰仂于舒�亠仍� 于�亠仄亠仆仆仂 仆亠亟仂���仗亠仆"
-
-msgid "No match"
-msgstr "�亠� �仂于仗舒亟亠仆亳�"
-
-msgid "List overflow"
-msgstr "�亠�亠仗仂仍仆亠仆亳亠 �仗亳�从舒"
-
-msgid "Request ambiguous"
-msgstr "�亠��仆�亶 亰舒仗�仂�"
-
-msgid "Queue full"
-msgstr "��亠�亠亟� 仗仂仍仆舒"
-
-msgid "Not while on AOL"
-msgstr "�亠 于 AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "�仆舒�仂从 �仂弍亠�亠亟仆亳从舒"
@@ -8160,58 +8060,122 @@
 msgid "Capabilities"
 msgstr "�仂亰仄仂亢仆仂��亳"
 
+msgid "Invalid SNAC"
+msgstr "�亠于亠�仆�亶 SNAC"
+
+msgid "Server rate limit exceeded"
+msgstr "��亠于��亠仆 仗�亠亟亠仍 �从仂�仂��亳 �亠�于亠�舒"
+
+msgid "Client rate limit exceeded"
+msgstr "��亠于��亠仆 仗�亠亟亠仍 �从仂�仂��亳 从仍亳亠仆�舒"
+
+msgid "Service unavailable"
+msgstr "弌仍�亢弍舒 仆亠亟仂���仗仆舒"
+
+msgid "Service not defined"
+msgstr "弌仍�亢弍舒 仆亠 仂仗�亠亟亠仍亠仆舒"
+
+msgid "Obsolete SNAC"
+msgstr "丕��舒�亠于�亳亶 SNAC"
+
+msgid "Not supported by host"
+msgstr "�亠 仗仂亟亟亠�亢亳于舒亠��� �亰仍仂仄"
+
+msgid "Not supported by client"
+msgstr "�亠 仗仂亟亟亠�亢亳于舒亠��� 从仍亳亠仆�仂仄"
+
+msgid "Refused by client"
+msgstr "��于亠�亞仆��仂 从仍亳亠仆�仂仄"
+
+msgid "Reply too big"
+msgstr "��于亠� �仍亳�从仂仄 于亠仍亳从"
+
+msgid "Responses lost"
+msgstr "��从仍亳从亳 仗仂�亠��仆�"
+
+msgid "Request denied"
+msgstr "�舒仗�仂� 仂�于亠�亞仆��"
+
+msgid "Busted SNAC payload"
+msgstr "弌仍仂仄舒仆舒 仗仂仍亠亰仆舒� 仆舒亞��亰从舒 SNAC"
+
+msgid "Insufficient rights"
+msgstr "�亠亟仂��舒�仂�仆�亠 仗�舒于舒"
+
+msgid "In local permit/deny"
+msgstr "� 仄亠��仆仂仄 �舒亰�亠�亠仆亳亳/亰舒仗�亠�亠"
+
+msgid "Warning level too high (sender)"
+msgstr "丕�仂于亠仆� 仗�亠亟�仗�亠亢亟亠仆亳� �仍亳�从仂仄 于��仂从 (仂�仗�舒于亳�亠仍�)"
+
+msgid "Warning level too high (receiver)"
+msgstr "丕�仂于亠仆� 仗�亠亟�仗�亠亢亟亠仆亳� �仍亳�从仂仄 于��仂从 (仗仂仍��舒�亠仍�)"
+
+msgid "User temporarily unavailable"
+msgstr "�仂仍�亰仂于舒�亠仍� 于�亠仄亠仆仆仂 仆亠亟仂���仗亠仆"
+
+msgid "No match"
+msgstr "�亠� �仂于仗舒亟亠仆亳�"
+
+msgid "List overflow"
+msgstr "�亠�亠仗仂仍仆亠仆亳亠 �仗亳�从舒"
+
+msgid "Request ambiguous"
+msgstr "�亠��仆�亶 亰舒仗�仂�"
+
+msgid "Queue full"
+msgstr "��亠�亠亟� 仗仂仍仆舒"
+
+msgid "Not while on AOL"
+msgstr "�亠 于 AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
 msgid "Appear Online"
-msgstr "�仂�于仍�亠��� 于 �亠�亳"
+msgstr "�亳亟亳仄�亶 亟仍� 于�亠�"
 
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear offline to the chosen user when your status is set to
 #. Invisible (this is the default).
-#, fuzzy
 msgid "Don't Appear Online"
-msgstr "�仂�于仍�亠��� 于 �亠�亳"
+msgstr "�亠于亳亟亳仄�亶 仍亳�� 亟仍� 亳亰弍�舒仆仆��"
 
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to always appear offline to the chosen user (even when your status
 #. isn't Invisible).
 msgid "Appear Offline"
-msgstr "�亠�仂��仆仂 仆亠 于 �亠�亳"
+msgstr "�亠于亳亟亳仄�亶 亟仍� 于�亠�"
 
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear offline to the chosen user if you are invisible, and
 #. appear online to the chosen user if you are not invisible (this is the
 #. default).
-#, fuzzy
 msgid "Don't Appear Offline"
-msgstr "�亠�仂��仆仂 仆亠 于 �亠�亳"
-
-#, fuzzy
+msgstr "�亠于亳亟亳仄�亶 亟仍� 亳亰弍�舒仆仆��"
+
 msgid "you have no buddies on this list"
-msgstr "�舒� 于�亞仆舒仍亳: (%s)"
-
-#, fuzzy, c-format
+msgstr "于 ��仂仄 �仗亳�从亠 � 于舒� 仆亠� �仂弍亠�亠亟仆亳从仂于"
+
+#, c-format
 msgid ""
 "You can add a buddy to this list by right-clicking on them and selecting \"%s"
 "\""
 msgstr ""
-"�� 仄仂亢亠�亠 亰舒仗�仂�亳�� 舒于�仂�亳亰舒�亳� 仂� ��亳� �仂弍亠�亠亟仆亳从仂于 仗仂于�仂�仆仂, ��仍从仆�于 仆舒 "
-"仆亳� 仗�舒于仂亶 从仆仂仗从仂亶 仄��亳 亳 于�弍�舒于 \"�仂于�仂�仆�亶 亰舒仗�仂� 舒于�仂�亳亰舒�亳亳\"."
-
-#, fuzzy
+"�� 仄仂亢亠�亠 亟仂弍舒于亳�� �仂弍亠�亠亟仆亳从舒 于 ��仂� �仗亳�仂从 仗�舒于�仄 �亠仍�从仂仄 仄��亳, 于�弍�舒于 "
+"亰舒�亠仄 \"%s\""
+
 msgid "Visible List"
-msgstr "�亳亟亳仄�亶"
+msgstr "弌仗亳�仂从 于亳亟亳仄仂��亳"
 
 msgid "These buddies will see your status when you switch to \"Invisible\""
-msgstr ""
-
-#, fuzzy
+msgstr "亅�亳 �仂弍亠�亠亟仆亳从亳 �于亳亟�� 于舒� ��舒��� 仗�亳 仗亠�亠从仍��亠仆亳亳 于 \"�亠于亳亟亳仄�亶\""
+
 msgid "Invisible List"
-msgstr "弌仗亳�仂从 仗�亳亞仍舒��仆仆��"
+msgstr "弌仗亳�仂从 仆亠于亳亟亳仄仂��亳"
 
 msgid "These buddies will always see you as offline"
-msgstr ""
+msgstr "亅�亳 �仂弍亠�亠亟仆亳从亳 仆亳从仂亞亟舒 仆亠 �于亳亟�� 于舒� 于 �亠�亳"
 
 msgid "Aquarius"
 msgstr "�仂亟仂仍亠亶"
@@ -8811,14 +8775,14 @@
 msgid "Select Server"
 msgstr "��弍亠�亳�亠 �亠�于亠�"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "弌仂亠亟亳仆亠仆亳亠 仗仂 TCP"
@@ -11768,9 +11732,8 @@
 msgid "/Tools/Pr_ivacy"
 msgstr "/弌�亠亟��于舒/�_仂仆�亳亟亠仆�亳舒仍�仆仂���"
 
-#, fuzzy
 msgid "/Tools/Set _Mood"
-msgstr "/弌�亠亟��于舒/弌亳��亠仄仆�亶 _亢��仆舒仍"
+msgstr "/弌�亠亟��于舒/丕��舒仆仂于亳�� 仆_舒���仂亠仆亳亠"
 
 msgid "/Tools/_File Transfers"
 msgstr "/弌�亠亟��于舒/�亠�亠亟舒�舒 _�舒亶仍仂于"
@@ -11791,20 +11754,17 @@
 msgid "/Help/Online _Help"
 msgstr "/�仂仄仂��/�仂仄仂�� 于 _�亠�亳"
 
-#, fuzzy
 msgid "/Help/_Build Information"
-msgstr "�仆�仂�仄舒�亳� 仂 �仂弍亠�亠亟仆亳从亠"
+msgstr "/�仂仄仂��/�仆�仂�仄舒�亳� 仂 �_弍仂�从亠"
 
 msgid "/Help/_Debug Window"
 msgstr "/�仂仄仂��/�从仆仂 _仂�仍舒亟从亳"
 
-#, fuzzy
 msgid "/Help/De_veloper Information"
-msgstr "�仆�仂�仄舒�亳� 仂 �亠�于亠�亠"
-
-#, fuzzy
+msgstr "/�仂仄仂��/�仆�仂�仄舒�亳� 仂 �舒亰�舒弍仂�_�亳从亠"
+
 msgid "/Help/_Translator Information"
-msgstr "�亠��仂仆舒仍�仆舒� 亳仆�仂�仄舒�亳�"
+msgstr "/�仂仄仂��/�仆�仂�仄舒�亳� 仂 仗亠�亠于仂_亟�亳从亠"
 
 msgid "/Help/_About"
 msgstr "/�仂仄仂��/� _仗�仂亞�舒仄仄亠"
@@ -12426,9 +12386,6 @@
 msgid "Fatal Error"
 msgstr "�亠亳�仗�舒于亳仄舒� 仂�亳弍从舒"
 
-msgid "bug master"
-msgstr "仄舒��亠� 亞仍�从仂于"
-
 msgid "artist"
 msgstr "亳�仗仂仍仆亳�亠仍�"
 
@@ -12611,6 +12568,10 @@
 msgid "Maithili"
 msgstr "弌�舒�亳仍亳"
 
+#, fuzzy
+msgid "Meadow Mari"
+msgstr "�仂于舒� 仗仂��舒"
+
 msgid "Macedonian"
 msgstr "�舒从亠亟仂仆�从亳亶"
 
@@ -12727,7 +12688,7 @@
 msgid "Lithuanian"
 msgstr "�亳�仂于�从亳亶"
 
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "%s is a messaging client based on libpurple which is capable of connecting "
 "to multiple messaging services at once.  %s is written in C using GTK+.  %s "
@@ -12736,15 +12697,12 @@
 "copyrighted by its contributors, a list of whom is also distributed with "
 "%s.  There is no warranty for %s.<BR><BR>"
 msgstr ""
-"%s - 亞�舒�亳�亠�从亳亶 仄仂亟�仍�仆�亶 从仍亳亠仆� 仂弍仄亠仆舒 �仂仂弍�亠仆亳�仄亳, 仂�仆仂于�于舒��亳亶�� 仆舒 "
-"弍亳弍仍亳仂�亠从亠 libpurple, 仗仂亰于仂仍���亠亶 亳�仗仂仍�亰仂于舒�� AIM, MSN, Yahoo!, XMPP, ICQ, "
-"IRC, SILC, SIP/SIMPLE, Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, "
-"MySpaceIM, Gadu-Gadu 亳 QQ 仂亟仆仂于�亠仄亠仆仆仂.  �舒仗亳�舒仆 � 亳�仗仂仍�亰仂于舒仆亳亠仄 GTK+."
-"<BR><BR>�� 仄仂亢亠�亠 亳亰仄亠仆��� 亳 �舒�仗�仂���舒仆��� 仗�仂亞�舒仄仄� 仗仂 ��仍仂于亳�仄 GPL "
-"(于亠��亳亳 2 亳仍亳 弍仂仍亠亠 仗仂亰亟仆亠亶).  �仂仗亳� GPL �仂亟亠�亢亳��� 于 �舒亶仍亠 'COPYING', "
-"�舒�仗�仂���舒仆�亠仄仂仄 � %s.  �于�仂��从亳亠 仗�舒于舒 仆舒 %s 仗�亳仆舒亟仍亠亢舒� ��舒��仆亳从舒仄 "
-"仗�仂亠从�舒.  �仂仍仆�亶 �仗亳�仂从 ��舒��仆亳从仂于 仗�仂亠从�舒 �仄仂��亳�亠 于 �舒亶仍亠 'COPYRIGHT'.  �� "
-"仆亠 仗�亠亟仂��舒于仍�亠仄 仆亳从舒从亳� 亞舒�舒仆�亳亶 仆舒 ��� 仗�仂亞�舒仄仄�.<BR><BR>"
+"%s - 从仍亳亠仆� 仂弍仄亠仆舒 �仂仂弍�亠仆亳�仄亳, 仂�仆仂于舒仆仆�亶 仆舒 弍亳弍仍亳仂�亠从亠 libpurple, 从仂�仂�舒� "
+"仗仂亰于仂仍�亠� 仂亟仆仂于�亠仄亠仆仆仂 仗仂亟从仍��舒���� 仗仂 仆亠�从仂仍�从亳仄 �仍�亢弍舒仄. %s 仆舒仗亳�舒仆 仆舒 弌 � "
+"亳�仗仂仍�亰仂于舒仆亳亠仄 GTK+. %s 于�仗��亠仆, 亳 仄仂亢亠� 弍��� 亳亰仄亠仆�仆 亳仍亳 仗亠�亠�舒�仗�亠亟亠仍�仆, "
+"仗仂 ��仍仂于亳�仄 GPL 于亠��亳亳 2 (亳仍亳 仗仂亰亟仆亠亶).  �仂仗亳� GPL �舒�仗�仂���舒仆�亠��� 于仄亠��亠 � "
+"%s. ��舒于舒 仆舒 %s 亰舒�亳�亠仆� 亠亞仂 ��舒��仆亳从舒仄亳, �仗亳�仂从 从仂�仂��� �舒从亢亠 "
+"�舒�仗�仂���舒仆�亠��� � %s.  �舒�舒仆�亳� 仆舒 %s 仆亠 仗�亠亟仂��舒于仍�亠���. <BR><BR>"
 
 #, c-format
 msgid ""
@@ -12753,8 +12711,11 @@
 "Channel: #pidgin on irc.freenode.net<BR>\tXMPP MUC: devel@conference.pidgin."
 "im<BR><BR>"
 msgstr ""
-
-#, fuzzy, c-format
+"<FONT SIZE=\"4\"><B>�仂仍亠亰仆�亠 �亠�����</B></FONT><BR>\t<A HREF=\"%s\">�亠弍-"
+"�舒亶�</A><BR>\t<A HREF=\"%s\">丼舒��仂 亰舒亟舒于舒亠仄�亠 于仂仗�仂��</A><BR>\tIRC 从舒仆舒仍: "
+"#pidgin 仆舒 irc.freenode.net<BR>\tXMPP MUC: devel@conference.pidgin.im<BR><BR>"
+
+#, c-format
 msgid ""
 "<font size=\"4\"><b>Help from other Pidgin users</b></font> is available by "
 "e-mailing <a href=\"mailto:support@pidgin.im\">support@pidgin.im</a><br/"
@@ -12764,25 +12725,25 @@
 "welcome to post in another language, but the responses may be less helpful."
 "<br/>"
 msgstr ""
-"<font size=\"4\">�仂仄仂�� 仂� 亟��亞亳� 仗仂仍�亰仂于舒�亠仍亠亶 Pidgin:</font> <a href="
-"\"mailto:support@pidgin.im\">support@pidgin.im</a><br/>亅�仂 <b>仗�弍仍亳�仆舒�</b> "
-"仗仂��仂于舒� �舒���仍从舒! (<a href=\"http://pidgin.im/pipermail/support/\">舒��亳于</"
-"a>)<br/>�� 仆亠 仄仂亢亠仄 仗仂仄仂�� 仗仂 ��仂�仂仆仆亳仄 仗�仂�仂从仂仍舒仄 亳仍亳 仄仂亟�仍�仄!<br/>��仆仂于仆仂亶 "
-"�亰�从 ��仂亶 �舒���仍从亳 - <b>舒仆亞仍亳亶�从亳亶</b>.  ��, 从仂仆亠�仆仂, 仄仂亢亠�亠 仗亳�舒�� 仆舒 "
-"亟��亞仂仄 �亰�从亠, 仆仂 仂�于亠�� 仄仂亞�� 弍��� 仄亠仆亠亠 仗仂仍亠亰仆�仄亳.<br/><br/>"
+"<font size=\"4\"><b>�仂仄仂�� 仂� 亟��亞亳� 仗仂仍�亰仂于舒�亠仍亠亶 Pidgin</b></font> "
+"亟仂���仗仆舒 仗仂 �仍.仗仂��亠 <a href=\"mailto:support@pidgin.im\">support@pidgin.im</"
+"a><br/>亅�仂 <b>仗�弍仍亳�仆舒�</b> 仗仂��仂于舒� �舒���仍从舒! (<a href=\"http://pidgin.im/"
+"pipermail/support/\">舒��亳于</a>)<br/>�� 仆亠 仄仂亢亠仄 仗仂仄仂�� 仗仂 仗�仂�仂从仂仍舒仄 亳仍亳 "
+"仄仂亟�仍�仄 ��亠��亳� 仍亳�!<br/>��仆仂于仆仂亶 �亰�从 ��仂亶 �舒���仍从亳 - <b>舒仆亞仍亳亶�从亳亶</b>.  "
+"��, 从仂仆亠�仆仂, 仄仂亢亠�亠 仗亳�舒�� 仆舒 亟��亞仂仄 �亰�从亠, 仆仂 仂�于亠�� 仄仂亞�� 仂从舒亰舒���� 仄亠仆亠亠 "
+"仗仂仍亠亰仆�仄亳.<br/>"
 
 #, c-format
 msgid "About %s"
 msgstr "� %s"
 
-#, fuzzy
 msgid "Build Information"
-msgstr "�仆�仂�仄舒�亳� 仂 �仂弍亠�亠亟仆亳从亠"
+msgstr "�仆�仂�仄舒�亳� 仂 �弍仂�从亠"
 
 #. End of not to be translated section
-#, fuzzy, c-format
+#, c-format
 msgid "%s Build Information"
-msgstr "�仆�仂�仄舒�亳� 仂 �仂弍亠�亠亟仆亳从亠"
+msgstr "�仆�仂�仄舒�亳� 仂 �弍仂�从亠 %s"
 
 msgid "Current Developers"
 msgstr "丐亠从��亳亠 �舒亰�舒弍仂��亳从亳"
@@ -13210,7 +13171,7 @@
 msgstr "丕仄亠仆��亳�� �舒亰仄亠� ��亳��舒"
 
 msgid "Font Face"
-msgstr "�弍仍亳从 ��亳��舒"
+msgstr "�亳亟 ��亳��舒"
 
 msgid "Foreground Color"
 msgstr "丶于亠� �亠从��舒"
@@ -13224,9 +13185,8 @@
 msgid "Insert Smiley"
 msgstr "���舒于亳�� �仄舒亶仍亳从"
 
-#, fuzzy
 msgid "Send Attention"
-msgstr "�仆仂仗从舒 仂�仗�舒于从亳"
+msgstr "�弍�舒�亳�� 于仆亳仄舒仆亳亠"
 
 msgid "<b>_Bold</b>"
 msgstr "<b>_�亳�仆�亶</b>"
@@ -13253,7 +13213,7 @@
 #. * need to update them when formatting changes. The above items don't need
 #. * no updating nor nothin'
 msgid "_Font face"
-msgstr "_�弍仍亳从 ��亳��舒"
+msgstr "_�亳亟 ��亳��舒"
 
 msgid "Foreground _color"
 msgstr "丶于亠� _�亠从��舒"
@@ -13405,13 +13365,11 @@
 msgid "Exiting because another libpurple client is already running.\n"
 msgstr "���仂亢�, 仗仂�仂仄� ��仂 �亢亠 亰舒仗��亠仆 亟��亞仂亶 从仍亳亠仆� libpurple.\n"
 
-#, fuzzy
 msgid "_Media"
 msgstr "/_�亠亟亳舒"
 
-#, fuzzy
 msgid "_Hangup"
-msgstr "��亳仂��舒仆仂于亳�� �舒亰亞仂于仂�"
+msgstr "_丕亟亠�亢舒�� 亰于仂仆仂从"
 
 #, c-format
 msgid "%s wishes to start an audio/video session with you."
@@ -13471,9 +13429,8 @@
 msgid "Dismiss"
 msgstr "�舒�仗���亳��"
 
-#, fuzzy
 msgid "<span weight=\"bold\" size=\"larger\">You have pounced!</span>"
-msgstr "<span weight=\"bold\" size=\"larger\">�舒仄 仗�亳�仍舒 仗仂��舒!</span>"
+msgstr "<span weight=\"bold\" size=\"larger\">�舒 于舒� 仆舒弍�仂�亳仍亳��!</span>"
 
 msgid "The following plugins will be unloaded."
 msgstr "弌仍亠亟���亳亠 仄仂亟�仍亳 弍�亟�� 于�亞��亢亠仆�."
@@ -13660,14 +13617,13 @@
 msgstr "��弍仂�� �亠仄"
 
 #. Instructions
-#, fuzzy
 msgid ""
 "Select a theme that you would like to use from the lists below.\n"
 "New themes can be installed by dragging and dropping them onto the theme "
 "list."
 msgstr ""
-"�亰 �仗亳�从舒 仆亳亢亠, 于�弍亠�亳�亠 �亠仄� �仄舒亶仍亳从仂于, 从仂�仂��� 于� 弍� �仂�亠仍亳 亳�仗仂仍�亰仂于舒��.\n"
-" �仂于�亠 �亠仄� 仄仂亢仆仂 ���舒仆仂于亳�� 仗亠�亠�舒�从亳于舒仆亳亠仄 亳� 于 �仗亳�仂从 �亠仄."
+"�亰 �仗亳�从舒 仆亳亢亠 于�弍亠�亳�亠 �亠仄�, 从仂�仂��� 于� �仂�亠仍亳 弍� 亳�仗仂仍�亰仂于舒��.\n"
+"�仂于�亠 �亠仄� 仄仂亢仆仂 ���舒仆仂于亳�� 仗亠�亠�舒�从亳于舒仆亳亠仄 亳� 于 �仗亳�仂从 �亠仄."
 
 msgid "Buddy List Theme:"
 msgstr "丐亠仄舒 弌仗亳�从舒 �仂弍亠�亠亟仆亳从仂于:"
@@ -13817,9 +13773,8 @@
 msgid "_Enable automatic router port forwarding"
 msgstr "_�舒亰�亠�亳�� 舒于�仂仄舒�亳�亠�从�� 仗亠�亠舒亟�亠�舒�亳� 仗仂��仂于 仄舒�����亳亰舒�仂�舒"
 
-#, fuzzy
 msgid "_Manually specify range of ports to listen on:"
-msgstr "丕从舒亰舒�� 亟亳舒仗舒亰仂仆 仗�仂�仍��亳于舒亠仄�� 仗仂��仂于 _于���仆��"
+msgstr "丕从舒亰舒�� 亟亳舒仗舒亰仂仆 仗�仂�仍��亳于舒亠_仄�� 仗仂��仂于 于���仆��:"
 
 msgid "_Start:"
 msgstr "_�舒�舒仍仂:"
@@ -13834,9 +13789,8 @@
 msgid "_TURN server:"
 msgstr "_TURN �亠�于亠�:"
 
-#, fuzzy
 msgid "_UDP Port:"
-msgstr "�_仂��:"
+msgstr "_UDP 仗仂��:"
 
 msgid "Use_rname:"
 msgstr "�仄_� 仗仂仍�亰仂于舒�亠仍�:"
@@ -13860,7 +13814,7 @@
 msgstr "Konqueror"
 
 msgid "Google Chrome"
-msgstr ""
+msgstr "Google Chrome"
 
 #. Do not move the line below.  Code below expects gnome-open to be in
 #. * this list immediately after xdg-open!
@@ -13884,11 +13838,11 @@
 
 #. Translators: please do not translate "chromium-browser" here!
 msgid "Chromium (chromium-browser)"
-msgstr ""
+msgstr "Chromium (chromium-browser)"
 
 #. Translators: please do not translate "chrome" here!
 msgid "Chromium (chrome)"
-msgstr ""
+msgstr "Chromium (chrome)"
 
 msgid "Manual"
 msgstr "���亞仂亶"
@@ -13931,7 +13885,6 @@
 msgid "Proxy Server"
 msgstr "��仂从�亳-�亠�于亠�"
 
-#, fuzzy
 msgid "Proxy preferences are configured in GNOME preferences"
 msgstr "�舒���仂亶从亳 仗�仂从�亳 于���舒于仍����� 于 仆舒���仂亶从舒� GNOME"
 
@@ -14236,13 +14189,11 @@
 msgid "Select Buddy Icon"
 msgstr "��弍�舒�� 亳从仂仆从� �仂弍亠�亠亟仆亳从舒"
 
-#, fuzzy
 msgid "Click to change your buddyicon for this account."
-msgstr "乂�仍从仆亳�亠, ��仂弍� 亳亰仄亠仆亳�� �于仂� 亳从仂仆从� 亟仍� ��仂亶 ����仆仂亶 亰舒仗亳�亳."
-
-#, fuzzy
+msgstr "乂�仍从仆亳�亠, ��仂弍� 亳亰仄亠仆亳�� 亳从仂仆从� 亟仍� ��仂亶 ����仆仂亶 亰舒仗亳�亳."
+
 msgid "Click to change your buddyicon for all accounts."
-msgstr "乂�仍从仆亳�亠, ��仂弍� 亳亰仄亠仆亳�� �于仂� 亳从仂仆从� 亟仍� 于�亠� ����仆�� 亰舒仗亳�亠亶."
+msgstr "乂�仍从仆亳�亠, ��仂弍� 亳亰仄亠仆亳�� 亳从仂仆从� 亟仍� 于�亠� ����仆�� 亰舒仗亳�亠亶."
 
 msgid "Waiting for network connection"
 msgstr "�亢亳亟舒仆亳亠 �亠�亠于仂亞仂 �仂亠亟亳仆亠仆亳�"
@@ -14260,7 +14211,7 @@
 msgstr "Google-仂弍�亠仆亳亠"
 
 msgid "Facebook (XMPP)"
-msgstr ""
+msgstr "Facebook (XMPP)"
 
 #, c-format
 msgid "The following error has occurred loading %s: %s"
@@ -14328,13 +14279,12 @@
 msgid "Cannot send launcher"
 msgstr "�亠仍�亰� 仂�仗�舒于亳�� ��仍�从"
 
-#, fuzzy
 msgid ""
 "You dragged a desktop launcher. Most likely you wanted to send the target of "
 "this launcher instead of this launcher itself."
 msgstr ""
-"�� 仗亠�亠��仆�仍亳 从仆仂仗从� 亰舒仗��从舒 �舒弍仂�亠亞仂 ��仂仍舒. 弌从仂�亠亠 于�亠亞仂 于� �仂�亠仍亳 "
-"仂�仗�舒于亳�� �仂, 仆舒 ��仂 ��舒 从仆仂仗从舒 ���仍舒亠���, 舒 仆亠 �舒仄� 亠�."
+"�� 仗亠�亠��仆�仍亳 亰仆舒�仂从 亰舒仗��从舒 � �舒弍仂�亠亞仂 ��仂仍舒. 弌从仂�亠亠 于�亠亞仂 于� �仂�亠仍亳 "
+"仂�仗�舒于亳�� �仂, 仆舒 ��仂 ��仂� 亰仆舒�仂从 ���仍舒亠���, 舒 仆亠 亠亞仂 �舒仄仂亞仂."
 
 #, c-format
 msgid ""
@@ -14357,7 +14307,6 @@
 msgid "Could not set icon"
 msgstr "�亠 �亟舒仍仂�� ���舒仆仂于亳�� 亰仆舒�仂从"
 
-#, fuzzy
 msgid "_Open Link"
 msgstr "_��从���� ���仍从�"
 
@@ -14367,28 +14316,23 @@
 msgid "_Copy Email Address"
 msgstr "_弌从仂仗亳�仂于舒�� 舒亟�亠� email"
 
-#, fuzzy
 msgid "_Open File"
-msgstr "��从���� �舒亶仍..."
-
-#, fuzzy
+msgstr "_��从���� �舒亶仍"
+
 msgid "Open _Containing Directory"
-msgstr "��从���� �仂亟亠�亢舒�亳亶 从舒�舒仍仂亞"
+msgstr "��从���� _�仂亟亠�亢舒��� 仗舒仗从�"
 
 msgid "Save File"
 msgstr "弌仂��舒仆亳�� �舒亶仍"
 
-#, fuzzy
 msgid "_Play Sound"
-msgstr "�仂�仗�仂亳亰于亠��亳 亰于�从"
-
-#, fuzzy
+msgstr "_�仂�仗�仂亳亰于仂亟亳�� 亰于�从"
+
 msgid "_Save File"
-msgstr "弌仂��舒仆亳�� �舒亶仍"
-
-#, fuzzy
+msgstr "_弌仂��舒仆亳�� �舒亶仍"
+
 msgid "Do you really want to clear?"
-msgstr "�� 亟亠亶��于亳�亠仍�仆仂 �仂�亳�亠 �亟舒仍亳�� %s?"
+msgstr "�� 亟亠亶��于亳�亠仍�仆仂 �仂�亳�亠 仂�亳��亳��?"
 
 msgid "Select color"
 msgstr "��弍�舒�� �于亠�"
@@ -14413,7 +14357,6 @@
 msgid "_Modify..."
 msgstr "_�亰仄亠仆亳��..."
 
-#, fuzzy
 msgid "_Add..."
 msgstr "_�仂弍舒于亳��..."
 
@@ -14438,9 +14381,8 @@
 msgid "Small"
 msgstr "�舒仍亠仆�从亳亶"
 
-#, fuzzy
 msgid "Smaller versions of the default smileys"
-msgstr "�亠仆��亳亠 于亠��亳亳 �仄舒亶仍亳从仂于 仗仂 �仄仂仍�舒仆亳�"
+msgstr "丕仄亠仆��亠仆仆�亠 于亠��亳亳 �仄舒亶仍亳从仂于 仗仂 �仄仂仍�舒仆亳�"
 
 msgid "Response Probability:"
 msgstr "�亠�仂��仆仂��� 仂�从仍亳从舒:"
@@ -14628,11 +14570,12 @@
 msgid "Allows browsing and registering services."
 msgstr "�仂亰于仂仍�亠� 仗�仂�仄舒��亳于舒�� 亳 �亠亞亳���亳�仂于舒�� �仍�亢弍�."
 
-#, fuzzy
 msgid ""
 "This plugin is useful for registering with legacy transports or other XMPP "
 "services."
-msgstr "亅�仂� 仄仂亟�仍� 仗仂仍亠亰亠仆 亟仍� 仂�仍舒亟从亳 XMPP �亠�于亠�仂于 亳仍亳 从仍亳亠仆�仂于."
+msgstr ""
+"亅�仂� 仄仂亟�仍� 仗仂仍亠亰亠仆 亟仍� �亠亞亳���舒�亳亳 � 弍舒亰仂于�仄亳 ��舒仆�仗仂��仆�仄亳 亳仍亳 亟��亞亳仄亳 "
+"XMPP �仍�亢弍舒仄亳."
 
 msgid "By conversation count"
 msgstr "�仂 从仂仍亳�亠��于� 弍亠�亠亟"
@@ -14934,14 +14877,13 @@
 msgstr "�仂亟�仍� 仄�亰�从舒仍�仆仂亶 仗亠�亠仗亳�从亳 亟仍� �仂于仄亠��仆仂亞仂 �仂�亳仆亠仆亳�"
 
 #. *  summary
-#, fuzzy
 msgid ""
 "The Music Messaging Plugin allows a number of users to simultaneously work "
 "on a piece of music by editing a common score in real-time."
 msgstr ""
-"�仂亟�仍� 仄�亰�从舒仍�仆仂亶 仗亠�亠仗亳�从亳 仗仂亰于仂仍�亠� 仆亠�从仂仍�从亳仄 仗仂仍�亰仂于舒�亠仍�仄 �仂于仄亠��仆仂 "
-"�舒弍仂�舒�� 仆舒亟 从��仂�从仂仄 仄亠仍仂亟亳亳 仗���仄 �亠亟舒从�亳�仂于舒仆亳� 仂弍�亳� �亠亰�仍��舒�仂于 于 "
-"�亠舒仍�仆仂仄 于�亠仄亠仆亳."
+"�仂亟�仍� 仄�亰�从舒仍�仆仂亶 仗亠�亠仗亳�从亳 仗仂亰于仂仍�亠� 仆亠�从仂仍�从亳仄 仗仂仍�亰仂于舒�亠仍�仄 仂亟仆仂于�亠仄亠仆仆仂 "
+"�舒弍仂�舒�� 仆舒亟 从��仂�从仂仄 仄亠仍仂亟亳亳 仗���仄 �亠亟舒从�亳�仂于舒仆亳� 仂弍�亳� 亟舒仆仆�� 于 �亠舒仍�仆仂仄 "
+"于�亠仄亠仆亳."
 
 #. ---------- "Notify For" ----------
 msgid "Notify For"
@@ -14972,7 +14914,6 @@
 msgid "Set window manager \"_URGENT\" hint"
 msgstr "丕��舒仆仂于亳�� 仗仂亟�从舒亰从� \"弌_��丼��\" 仂从仂仆仆仂亞仂 仄亠仆亠亟亢亠�舒"
 
-#, fuzzy
 msgid "_Flash window"
 msgstr "_�亳亞舒��亠亠 仂从仆仂"
 
@@ -14981,9 +14922,8 @@
 msgstr "_�仂亟仆亳仄舒�� 仂从仆仂 弍亠�亠亟�"
 
 #. Present conversation method button
-#, fuzzy
 msgid "_Present conversation window"
-msgstr "_�仂亟仆亳仄舒�� 仂从仆仂 弍亠�亠亟�"
+msgstr "_�仂从舒亰舒�� 仂从仆仂 弍亠�亠亟�"
 
 #. ---------- "Notification Removals" ----------
 msgid "Notification Removal"
@@ -15058,17 +14998,14 @@
 msgid "Hyperlink Color"
 msgstr "丶于亠� 亞亳仗亠����仍从亳"
 
-#, fuzzy
 msgid "Visited Hyperlink Color"
 msgstr "丶于亠� 仗仂�亠��仆仆仂亶 亞亳仗亠����仍从亳"
 
-#, fuzzy
 msgid "Highlighted Message Name Color"
-msgstr "丶于亠� 仆舒亟仗亳�亳 仗仂亟�于亠�亠仆仆仂亞仂 �仂仂弍�亠仆亳�"
-
-#, fuzzy
+msgstr "丶于亠� 亳仄亠仆亳 仗仂亟�于亠�亠仆仆仂亞仂 �仂仂弍�亠仆亳�"
+
 msgid "Typing Notification Color"
-msgstr "丶于亠� 仆舒弍仂�舒 �于亠亟仂仄仍亠仆亳�"
+msgstr "丶于亠� �于亠亟仂仄仍亠仆亳� 仂 仗亠�舒�舒仆亳亳"
 
 msgid "GtkTreeView Horizontal Separation"
 msgstr "�仂�亳亰仂仆�舒仍�仆仂亠 �舒亰亟亠仍亠仆亳亠 GtkTreeView"
@@ -15076,7 +15013,6 @@
 msgid "Conversation Entry"
 msgstr "�弍仍舒��� 于于仂亟舒 仂从仆舒 弍亠�亠亟�"
 
-#, fuzzy
 msgid "Conversation History"
 msgstr "���仂�亳� 仂弍�亠仆亳�"
 
@@ -15203,7 +15139,6 @@
 msgstr "�仆仂仗从舒 仂�仗�舒于从亳 仂从仆舒 弍亠�亠亟�."
 
 #. *< summary
-#, fuzzy
 msgid ""
 "Adds a Send button to the entry area of the conversation window. Intended "
 "for use when no physical keyboard is present."
@@ -15395,21 +15330,19 @@
 msgid "Timestamp Format Options"
 msgstr "�舒�舒仄亠��� �仂�仄舒�舒 于�亠仄亠仆亳"
 
-#, fuzzy, c-format
+#, c-format
 msgid "_Force timestamp format:"
-msgstr "_��亳仆�亟亳�亠仍�仆仂 亳�仗仂仍�亰仂于舒�� 24-�舒�仂于仂亶 �仂�仄舒� 于�亠仄亠仆亳"
-
-#, fuzzy
+msgstr "_��亳仆�亟亳�亠仍�仆仂 亳�仗仂仍�亰仂于舒�� �仂�仄舒� 于�亠仄亠仆亳:"
+
 msgid "Use system default"
-msgstr "��仗仂仍�亰�亠仄�亶 仗仂 �仄仂仍�舒仆亳�"
-
-#, fuzzy
+msgstr "��仗仂仍�亰仂于舒�� �亳��亠仄仆�亶 仗仂 �仄仂仍�舒仆亳�"
+
 msgid "12 hour time format"
-msgstr "_��亳仆�亟亳�亠仍�仆仂 亳�仗仂仍�亰仂于舒�� 24-�舒�仂于仂亶 �仂�仄舒� 于�亠仄亠仆亳"
+msgstr "12-�舒�仂于仂亶 �仂�仄舒� 于�亠仄亠仆亳"
 
 #, fuzzy
 msgid "24 hour time format"
-msgstr "_��亳仆�亟亳�亠仍�仆仂 亳�仗仂仍�亰仂于舒�� 24-�舒�仂于仂亶 �仂�仄舒� 于�亠仄亠仆亳"
+msgstr "24-�舒�仂于仂亶 �仂�仄舒� 于�亠仄亠仆亳"
 
 msgid "Show dates in..."
 msgstr "�仂从舒亰�于舒�� 亟舒��..."
@@ -15485,9 +15418,8 @@
 msgid "Voice/Video Settings"
 msgstr "�仂仍仂�仂于�亠/�亳亟亠仂 仆舒���仂亶从亳"
 
-#, fuzzy
 msgid "Voice and Video Settings"
-msgstr "�仂仍仂�仂于�亠/�亳亟亠仂 仆舒���仂亶从亳"
+msgstr "�仂仍仂�仂于�亠 亳 于亳亟亠仂 仆舒���仂亶从亳"
 
 #. *< name
 #. *< version
@@ -15757,6 +15689,12 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "丕 �舒� 仆亠� 仗�舒于 仆舒 �亟舒仍亠仆亳亠 ��仂亞仂 仗�亳仍仂亢亠仆亳�."
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr "��于亠�亞舒�� 舒于�仂仄舒�亳�亠�从亳 仂� 仗仂仍�亰仂于舒�亠仍亠亶 仆亠 亳亰 �仗亳�从舒 �仂弍亠�亠亟仆亳从仂于"
+
+#~ msgid "bug master"
+#~ msgstr "仄舒��亠� 亞仍�从仂于"
+
 #, fuzzy
 #~ msgid "An error occurred on the in-band bytestream transfer\n"
 #~ msgstr "��仂亳亰仂�仍舒 仂�亳弍从舒 仗�亳 仗亠�亠亟舒�亠 于仆���亳仗仂仍仂�仆仂亞仂 仗仂�仂从舒 弍舒亶�\n"
@@ -15879,12 +15817,11 @@
 #~ msgid "Unable to listen on socket: %s"
 #~ msgstr "�亠 �亟舒���� 仗�仂�仍��亳于舒�� �仂从亠�: %s"
 
-#, fuzzy
 #~ msgid "%s just sent you a Nudge!"
 #~ msgstr "%s 仗�仂��仂 仗仂亟�仂仍从仆�仍 于舒�!"
 
 #~ msgid "Friendly name changes too rapidly"
-#~ msgstr "���亢亠��于亠仆仆�亠 亳亰仄亠仆亠仆亳� 亳仄亠仆仆亳 �仍亳�从仂仄 弍�����"
+#~ msgstr "���亢亠��于亠仆仆仂亠 亳仄� 亳亰仄亠仆�亠��� �仍亳�从仂仄 弍����仂"
 
 #~ msgid "This Hotmail account may not be active."
 #~ msgstr "亅�舒 ����仆舒� 亰舒仗亳�� 亞仂���亠亶 仗仂��� 仄仂亢亠� 弍��� 仆亠舒从�亳于仆舒."
@@ -15934,13 +15871,12 @@
 #~ msgid "%s has removed you from his or her buddy list."
 #~ msgstr "%s �亟舒仍亳仍 于舒� 亳亰 �于仂亠亞仂 �仗亳�从舒 �仂弍亠�亠亟仆亳从仂于."
 
-#, fuzzy
 #~ msgid ""
 #~ "The last action you attempted could not be performed because you are over "
 #~ "the rate limit. Please wait 10 seconds and try again.\n"
 #~ msgstr ""
 #~ "�仂�仍亠亟仆亠亠 仗�亠亟仗�亳仆��仂亠 于舒仄亳 亟亠亶��于亳亠 仆亠 仄仂亢亠� 弍��� 于�仗仂仍仆亠仆仂, �舒从 从舒从 于� "
-#~ "仗�亠于��亳仍亳 仗�亠亟亠仍. �仂亟仂亢亟亳�亠 10 �亠从�仆亟 亳 仗仂仗��舒亶�亠�� �仆仂于舒."
+#~ "仗�亠于��亳仍亳 仗�亠亟亠仍 �舒��仂��. �仂亢舒仍�亶��舒, 仗仂仗�仂弍�亶�亠 �仆仂于舒 �亠�亠亰 10 �亠从�仆亟."
 
 #~ msgid ""
 #~ "<FONT SIZE=\"4\">FAQ:</FONT> <A HREF=\"http://developer.pidgin.im/wiki/FAQ"
@@ -15949,13 +15885,11 @@
 #~ "<FONT SIZE=\"4\">丼舒�仂:</FONT> <A HREF=\"http://developer.pidgin.im/wiki/"
 #~ "FAQ\">http://developer.pidgin.im/wiki/FAQ</A><BR/><BR/>"
 
-#, fuzzy
 #~ msgid ""
 #~ "<FONT SIZE=\"4\">IRC Channel:</FONT> #pidgin on irc.freenode.net<BR><BR>"
 #~ msgstr ""
 #~ "<FONT SIZE=\"4\">IRC 从舒仆舒仍:</FONT> #pidgin 仆舒 irc.freenode.net<BR><BR>"
 
-#, fuzzy
 #~ msgid "<FONT SIZE=\"4\">XMPP MUC:</FONT> devel@conference.pidgin.im<BR><BR>"
 #~ msgstr ""
 #~ "<FONT SIZE=\"4\">XMPP MUC:</FONT> devel@conference.pidgin.im<BR><BR>"
--- a/po/ta.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/ta.po	Sat Feb 12 23:54:14 2011 +0000
@@ -19,7 +19,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-Country: INDIA\n"
 "X-Generator: Lokalize 1.0\n"
 "X-Poedit-Bookmarks: -1,470,-1,-1,-1,-1,-1,-1,-1,1715\n"
--- a/po/uk.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/uk.po	Sat Feb 12 23:54:14 2011 +0000
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the Pidgin package.
 #
 # Maxim V. Dziumanenko <mvd@mylinux.com.ua>, 2004-2005.
-# Oleksandr Kovalenko <alx.kovalenko@gmail.com>, 2009-2010.
+# Oleksandr Kovalenko <alx.kovalenko@gmail.com>, 2009-2011.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 22:11-0500\n"
-"PO-Revision-Date: 2010-12-19 22:07+0300\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
+"PO-Revision-Date: 2011-01-30 21:27+0300\n"
 "Last-Translator: Oleksandr Kovalenko <alx.kovalenko@gmail.com>\n"
 "Language-Team: Ukrainian <uk@li.org>\n"
 "Language: uk\n"
@@ -2360,8 +2360,12 @@
 "丿仍�� 亟亠 亰弍亠��亞舒�亳 �舒亶仍亳\n"
 "(��亟� 仍舒�从舒, 于从舒亢��� 仗仂于仆亳亶 �仍��)"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "�于�仂仄舒�亳�仆仂 于�亟�亳仍亳�亳 于�亟 从仂�亳���于舒��于, �从� 仆亠 于 仗亠�亠仍�从� 从仂仆�舒从��于"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr ""
+"�仂仍亳 亰舒仗亳� 仆舒 仗亠�亠亟舒于舒仆仆� �舒亶仍� 仆舒亟�仂亟亳�� 于�亟 从仂�亳���于舒�舒,\n"
+"�从亳亶 *仆亠* 于 于舒�仂仄� 仗亠�亠仍�从� 从仂仆�舒从��于"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2374,6 +2378,9 @@
 msgid "Create a new directory for each user"
 msgstr "弌�于仂�亳�亳 仆仂于� �亠从� 亟仍� 从仂亢仆仂亞仂 从仂�亳���于舒�舒"
 
+msgid "Escape the filenames"
+msgstr "�从�舒仆�于舒�亳 仆舒亰于亳 �舒亶仍�于"
+
 msgid "Notes"
 msgstr "��亳仄��从亳"
 
@@ -3832,7 +3839,10 @@
 msgstr ""
 "弌亠�于亠� 于亳仄舒亞舒� 舒于�亠仆�亳��从舒��� 亰于亳�舒亶仆亳仄 �亠从��仂仄 �亠�亠亰 仆亠�亳��仂于舒仆亳亶 仗仂��从"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "�亠仗�舒于亳仍�仆舒 于�亟仗仂于�亟� 于�亟 �亠�于亠�舒"
 
@@ -6141,6 +6151,20 @@
 msgid "Retrieving User Information..."
 msgstr "���亳仄舒仆仆� 于�亟仂仄仂��亠亶 仗�仂 从仂�亳���于舒�舒..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "�舒� 于亳从亳仆�仍亳 亰 ��仂亞仂 MultiMX."
+
+msgid "was kicked"
+msgstr "弍�于 于亳从亳仆��亳亶"
+
+msgid "_Room Name:"
+msgstr "_�舒亰于舒 从�仄仆舒�亳:"
+
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "�舒� 亰舒仗�仂�亳仍亳"
+
 msgid "Loading menu..."
 msgstr "�舒于舒仆�舒亢亠仆仆� 仄亠仆�..."
 
@@ -6168,20 +6192,6 @@
 msgid "Enable splash-screen popup"
 msgstr "丕于�仄从仆��亳 于亳�亳仆舒��� 亠从�舒仆仆� 亰舒��舒于从�"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "�舒� 于亳从亳仆�仍亳 亰 ��仂亞仂 MultiMX."
-
-msgid "was kicked"
-msgstr "弍�于 于亳从亳仆��亳亶"
-
-msgid "_Room Name:"
-msgstr "_�舒亰于舒 从�仄仆舒�亳:"
-
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "�舒� 亰舒仗�仂�亳仍亳"
-
 msgid "Last Online"
 msgstr "�仂��舒仆仆� 于 仄亠�亠亢�"
 
@@ -7870,75 +7880,6 @@
 "�舒 � 仆亠仂弍��亟仆亳仄 亟仍� 仗亠�亠亟舒于舒仆仆� 亰仂弍�舒亢亠仆�. 丐舒从 �从 于舒�舒 �� 舒亟�亠�舒 弍�亟亠 "
 "�仂亰从�亳�舒, �亠 仄仂亢亠 于于舒亢舒�亳�� 亰舒亞�仂亰仂� 弍亠亰仗亠��."
 
-msgid "Invalid SNAC"
-msgstr "�亠仗�舒于亳仍�仆亳亶 SNAC"
-
-msgid "Server rate limit exceeded"
-msgstr "�仂��亞仆��仂 仂弍仄亠亢亠仆仆� �于亳亟从仂��� �亠�于亠�舒"
-
-msgid "Client rate limit exceeded"
-msgstr "�仂��亞仆��仂 仂弍仄亠亢亠仆仆� �于亳亟从仂��� 从仍��仆�舒"
-
-msgid "Service unavailable"
-msgstr "�仂�仍�亞舒 仆亠亟仂���仗仆舒"
-
-msgid "Service not defined"
-msgstr "�仂�仍�亞舒 仆亠 于亳亰仆舒�亠仆舒"
-
-msgid "Obsolete SNAC"
-msgstr "�舒��舒��仍亳亶 SNAC"
-
-msgid "Not supported by host"
-msgstr "�亠 仗�亟��亳仄������ 于�亰仍仂仄"
-
-msgid "Not supported by client"
-msgstr "�亠 仗�亟��亳仄������ 从仍��仆�仂仄"
-
-msgid "Refused by client"
-msgstr "��亟从亳仆��舒 从仍��仆�仂仄"
-
-msgid "Reply too big"
-msgstr "��亟仗仂于�亟� 亰舒于亠仍亳从舒"
-
-msgid "Responses lost"
-msgstr "��亟仗仂于�亟� 于��舒�亠仆�"
-
-msgid "Request denied"
-msgstr "�舒仗亳� 于�亟�亳仍亠仆亳亶"
-
-msgid "Busted SNAC payload"
-msgstr "��仗�仂于舒仆� 亟舒仆� SNAC"
-
-msgid "Insufficient rights"
-msgstr "�亠亟仂��舒�仆�仂 仗�舒于"
-
-msgid "In local permit/deny"
-msgstr "� 仄���亠于仂仄� 仗亠�亠仍�从� 亟仂亰于仂仍亠仆亳�/亰舒弍仂�仂仆亠仆亳�"
-
-msgid "Warning level too high (sender)"
-msgstr "��于亠仆� 仗仂仗亠�亠亟亢亠仆仆� 亟�亢亠 于亳�仂从亳亶 (于�亟仗�舒于仆亳从)"
-
-msgid "Warning level too high (receiver)"
-msgstr "��于亠仆� 仗仂仗亠�亠亟亢亠仆仆� 亟�亢亠 于亳�仂从亳亶 (仂��亳仄�于舒�)"
-
-msgid "User temporarily unavailable"
-msgstr "�仂�亳���于舒� �亳仄�舒�仂于仂 仆亠亟仂���仗仆亳亶"
-
-msgid "No match"
-msgstr "�亠仄舒� 亰弍�亞�于"
-
-msgid "List overflow"
-msgstr "�亠�亠仍�从 仗亠�亠仗仂于仆亠仆亳亶"
-
-msgid "Request ambiguous"
-msgstr "�舒仗亳� 仆亠亰�仂亰�仄�仍亳亶"
-
-msgid "Queue full"
-msgstr "丼亠�亞舒 仗亠�亠仗仂于仆亠仆舒"
-
-msgid "Not while on AOL"
-msgstr "�亠 �仂亟�, 从仂仍亳 � AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "�仆舒�仂从 从仂�亳���于舒�舒"
@@ -8057,6 +7998,75 @@
 msgid "Capabilities"
 msgstr "�仂亢仍亳于仂���"
 
+msgid "Invalid SNAC"
+msgstr "�亠仗�舒于亳仍�仆亳亶 SNAC"
+
+msgid "Server rate limit exceeded"
+msgstr "�仂��亞仆��仂 仂弍仄亠亢亠仆仆� �于亳亟从仂��� �亠�于亠�舒"
+
+msgid "Client rate limit exceeded"
+msgstr "�仂��亞仆��仂 仂弍仄亠亢亠仆仆� �于亳亟从仂��� 从仍��仆�舒"
+
+msgid "Service unavailable"
+msgstr "�仂�仍�亞舒 仆亠亟仂���仗仆舒"
+
+msgid "Service not defined"
+msgstr "�仂�仍�亞舒 仆亠 于亳亰仆舒�亠仆舒"
+
+msgid "Obsolete SNAC"
+msgstr "�舒��舒��仍亳亶 SNAC"
+
+msgid "Not supported by host"
+msgstr "�亠 仗�亟��亳仄������ 于�亰仍仂仄"
+
+msgid "Not supported by client"
+msgstr "�亠 仗�亟��亳仄������ 从仍��仆�仂仄"
+
+msgid "Refused by client"
+msgstr "��亟从亳仆��舒 从仍��仆�仂仄"
+
+msgid "Reply too big"
+msgstr "��亟仗仂于�亟� 亰舒于亠仍亳从舒"
+
+msgid "Responses lost"
+msgstr "��亟仗仂于�亟� 于��舒�亠仆�"
+
+msgid "Request denied"
+msgstr "�舒仗亳� 于�亟�亳仍亠仆亳亶"
+
+msgid "Busted SNAC payload"
+msgstr "��仗�仂于舒仆� 亟舒仆� SNAC"
+
+msgid "Insufficient rights"
+msgstr "�亠亟仂��舒�仆�仂 仗�舒于"
+
+msgid "In local permit/deny"
+msgstr "� 仄���亠于仂仄� 仗亠�亠仍�从� 亟仂亰于仂仍亠仆亳�/亰舒弍仂�仂仆亠仆亳�"
+
+msgid "Warning level too high (sender)"
+msgstr "��于亠仆� 仗仂仗亠�亠亟亢亠仆仆� 亟�亢亠 于亳�仂从亳亶 (于�亟仗�舒于仆亳从)"
+
+msgid "Warning level too high (receiver)"
+msgstr "��于亠仆� 仗仂仗亠�亠亟亢亠仆仆� 亟�亢亠 于亳�仂从亳亶 (仂��亳仄�于舒�)"
+
+msgid "User temporarily unavailable"
+msgstr "�仂�亳���于舒� �亳仄�舒�仂于仂 仆亠亟仂���仗仆亳亶"
+
+msgid "No match"
+msgstr "�亠仄舒� 亰弍�亞�于"
+
+msgid "List overflow"
+msgstr "�亠�亠仍�从 仗亠�亠仗仂于仆亠仆亳亶"
+
+msgid "Request ambiguous"
+msgstr "�舒仗亳� 仆亠亰�仂亰�仄�仍亳亶"
+
+msgid "Queue full"
+msgstr "丼亠�亞舒 仗亠�亠仗仂于仆亠仆舒"
+
+msgid "Not while on AOL"
+msgstr "�亠 �仂亟�, 从仂仍亳 � AOL"
+
 #. Translators: This string is a menu option that, if selected, will cause
 #. you to appear online to the chosen user even when your status is set to
 #. Invisible.
@@ -8648,14 +8658,14 @@
 msgid "Select Server"
 msgstr "�亳弍亠���� �亠�于亠�"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "�'�亟仆舒仆仆� 仗仂 TCP"
@@ -12222,9 +12232,6 @@
 msgid "Fatal Error"
 msgstr "个舒�舒仍�仆舒 仗仂仄亳仍从舒"
 
-msgid "bug master"
-msgstr "�仗亠��舒仍��� 亰 于舒亟"
-
 msgid "artist"
 msgstr "于亳从仂仆舒于亠��"
 
@@ -12404,6 +12411,9 @@
 msgid "Maithili"
 msgstr "�舒亶���仍�"
 
+msgid "Meadow Mari"
+msgstr "��亞仂于仂仄舒��亶��从舒"
+
 msgid "Macedonian"
 msgstr "�舒从亠亟仂仆��从舒"
 
@@ -15504,5 +15514,11 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "�亳 仆亠 仄舒��亠 仗�舒于舒 仆舒 于亳亟舒仍亠仆仆� ���� 仗�仂亞�舒仄亳."
 
+#~ msgid "bug master"
+#~ msgstr "�仗亠��舒仍��� 亰 于舒亟"
+
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr "�于�仂仄舒�亳�仆仂 于�亟�亳仍亳�亳 于�亟 从仂�亳���于舒��于, �从� 仆亠 于 仗亠�亠仍�从� 从仂仆�舒从��于"
+
 #~ msgid "Error requesting %s"
 #~ msgstr "�仂仄亳仍从舒 亰舒仗亳�� %s"
--- a/po/zh_HK.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/zh_HK.po	Sat Feb 12 23:54:14 2011 +0000
@@ -1,14 +1,14 @@
 # NOTE: This file is generated from zh_TW.po by mkzhhk.pl,v 1.27 2010/12/17 01:08:13 acli Exp
 # ---
 # Pidgin's Traditional Chinese translation
-# Copyright (C) 2002-2010, Paladin R. Liu <paladin@ms1.hinet.net>
-# Copyright (C) 2003-2010, Ambrose C. Li <ambrose.li@gmail.com>
+# Copyright (C) 2002-2011, Paladin R. Liu <paladin@ms1.hinet.net>
+# Copyright (C) 2003-2011, Ambrose C. Li <ambrose.li@gmail.com>
 #
 # PLEASE DO NOT ATTEMPT TO UPDATE THIS FILE IF THERE ARE NO
 # LINE NUMBERS (LINES BEGINNING WITH #:) IN THIS FILE.
 #
 # This file is distributed under the same license as the "Pidgin" package.
-# $InternalId: zh_TW.po,v 1.659 2010/12/17 03:16:38 acli Exp $
+# $InternalId: zh_TW.po,v 1.661 2011/02/01 04:45:39 acli Exp $
 #
 # ----------------------------------------------------------
 # For internal use only:
@@ -60,9 +60,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Pidgin 2.7.8\n"
+"Project-Id-Version: Pidgin 2.7.9\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:34-0500\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
 "PO-Revision-Date: 2010-12-16 19:32-0500\n"
 "Last-Translator: Ambrose Li <ambrose.li@gmail.com>\n"
 "Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
@@ -2439,8 +2439,10 @@
 "罟�罅��峨�莊��\n"
 "鐚�茫���箴�絎��頑君緇�鐚�"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "������腟���箴���ソ��羝���賢��篏睡����"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr "�銀���筝����絅遵�羝����х��篏睡����荀�羆�罟�罅��活叱��"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2453,6 +2455,9 @@
 msgid "Create a new directory for each user"
 msgstr "腟����篏睡����綮榊�荅俄戎����絨��������"
 
+msgid "Escape the filenames"
+msgstr "�後�堺�罅���腮延賢���劫�ュ�膃�"
+
 msgid "Notes"
 msgstr "��荐�"
 
@@ -3920,7 +3925,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr "篌堺������荀�膓��掩�����絲���筝我��画�����茯�茘�"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "篌堺������箴�篋��≧��������"
 
@@ -6434,6 +6442,21 @@
 msgid "Retrieving User Information..."
 msgstr "莅���篏睡����莖�荐�筝�..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "篏�綏牙�緇�MultiMX筝㊧←荼√�冴��"
+
+msgid "was kicked"
+msgstr "茴�権��"
+
+msgid "_Room Name:"
+msgstr "��紊����腮�(_R)鐚�"
+
+# NOTE 緇�綏�������鐚��九��翫��筝�筝���緇�����You have invited: %s��鐚�%s ��←��茫���鐚�
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "篏���茫�篋�"
+
 msgid "Loading menu..."
 msgstr "莠��ユ���賢..."
 
@@ -6462,21 +6485,6 @@
 msgid "Enable splash-screen popup"
 msgstr "�����������√��肴�腦�"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "篏�綏牙�緇�MultiMX筝㊧←荼√�冴��"
-
-msgid "was kicked"
-msgstr "茴�権��"
-
-msgid "_Room Name:"
-msgstr "��紊����腮�(_R)鐚�"
-
-# NOTE 緇�綏�������鐚��九��翫��筝�筝���緇�����You have invited: %s��鐚�%s ��←��茫���鐚�
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "篏���茫�篋�"
-
 msgid "Last Online"
 msgstr "��菴�筝�膩�"
 
@@ -8126,90 +8134,6 @@
 "����荀�羆�絨����������肢����綮榊�莎欠�贋・�g�鐚����������渇���恰��荐����������鏆�������"
 "��罔e������俄��� IP 篏���鐚���罩ゅ��醇����腱��掩�拷�∝��蘂�����"
 
-msgid "Invalid SNAC"
-msgstr "�≧���� SNAC"
-
-msgid "Server rate limit exceeded"
-msgstr "莇��坂�篌堺�����������筝���"
-
-msgid "Client rate limit exceeded"
-msgstr "莇��坂����句�������筝���"
-
-# NOTE SNAC ���篁g⊆5鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
-# NOTE ��篆���腟��篋�筝���綏峨�臂������� (Service, Family)鐚�篏�����腮����鐚�篌堺���������≧���箴�荅我����
-msgid "Service unavailable"
-msgstr "����筝�絖���"
-
-msgid "Service not defined"
-msgstr "�������臂�"
-
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "Obsolete SNAC"
-msgstr "綏俄�綮∝����綣� SNAC"
-
-msgid "Not supported by host"
-msgstr "篌堺��������"
-
-msgid "Not supported by client"
-msgstr "���句�筝����"
-
-msgid "Refused by client"
-msgstr "頮����句���腟�"
-
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "Reply too big"
-msgstr "����紊�ぇ"
-
-msgid "Responses lost"
-msgstr "�阪け����"
-
-msgid "Request denied"
-msgstr "茫�羆�茴���"
-
-# NOTE SNAC ���篁g⊆14 (0x0e)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚��� SNAC 莢�莠��у�榊憘��弱�筝������
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "Busted SNAC payload"
-msgstr "�後���� SNAC 莢�莠�"
-
-msgid "Insufficient rights"
-msgstr "罨���筝�紊�"
-
-# NOTE SNAC ���篁g⊆16 (0x10)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "In local permit/deny"
-msgstr "�����亥�����荐縁���腟�羝�����"
-
-# NOTE SNAC ���篁g⊆17 (0x11)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚���荀��銀�羔�����warning level����茘���
-msgid "Warning level too high (sender)"
-msgstr "鐚��守����鐚�茘���膈�膣����"
-
-# NOTE SNAC ���篁g⊆18 (0x12)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚���荀��銀�羔�����warning level����茘���
-msgid "Warning level too high (receiver)"
-msgstr "鐚��ユ�区��鐚�茘���膈�膣����"
-
-msgid "User temporarily unavailable"
-msgstr "篏睡��������筝����筝�"
-
-msgid "No match"
-msgstr "羃����悟���荐���"
-
-# NOTE SNAC ���篁g⊆21 (0x15)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
-# NOTE OSCAR ��絎��喝���筝�腮���List��鐚�茘�����絅遵�羝��������巡�絨�
-msgid "List overflow"
-msgstr "羝���群羯�"
-
-msgid "Request ambiguous"
-msgstr "筝���∈��茫�羆�"
-
-msgid "Queue full"
-msgstr "篏���綏我賛"
-
-# NOTE SNAC ���篁g⊆24 (0x18)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
-# NOTE ���醇������ AOL 茖頳�羆�篋�筝�腮� ICQ ������
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "Not while on AOL"
-msgstr "筝������� AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "絅遵���腓�"
@@ -8344,6 +8268,90 @@
 msgid "Capabilities"
 msgstr "�弱���"
 
+msgid "Invalid SNAC"
+msgstr "�≧���� SNAC"
+
+msgid "Server rate limit exceeded"
+msgstr "莇��坂�篌堺�����������筝���"
+
+msgid "Client rate limit exceeded"
+msgstr "莇��坂����句�������筝���"
+
+# NOTE SNAC ���篁g⊆5鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
+# NOTE ��篆���腟��篋�筝���綏峨�臂������� (Service, Family)鐚�篏�����腮����鐚�篌堺���������≧���箴�荅我����
+msgid "Service unavailable"
+msgstr "����筝�絖���"
+
+msgid "Service not defined"
+msgstr "�������臂�"
+
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "Obsolete SNAC"
+msgstr "綏俄�綮∝����綣� SNAC"
+
+msgid "Not supported by host"
+msgstr "篌堺��������"
+
+msgid "Not supported by client"
+msgstr "���句�筝����"
+
+msgid "Refused by client"
+msgstr "頮����句���腟�"
+
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "Reply too big"
+msgstr "����紊�ぇ"
+
+msgid "Responses lost"
+msgstr "�阪け����"
+
+msgid "Request denied"
+msgstr "茫�羆�茴���"
+
+# NOTE SNAC ���篁g⊆14 (0x0e)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚��� SNAC 莢�莠��у�榊憘��弱�筝������
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "Busted SNAC payload"
+msgstr "�後���� SNAC 莢�莠�"
+
+msgid "Insufficient rights"
+msgstr "罨���筝�紊�"
+
+# NOTE SNAC ���篁g⊆16 (0x10)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "In local permit/deny"
+msgstr "�����亥�����荐縁���腟�羝�����"
+
+# NOTE SNAC ���篁g⊆17 (0x11)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚���荀��銀�羔�����warning level����茘���
+msgid "Warning level too high (sender)"
+msgstr "鐚��守����鐚�茘���膈�膣����"
+
+# NOTE SNAC ���篁g⊆18 (0x12)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚���荀��銀�羔�����warning level����茘���
+msgid "Warning level too high (receiver)"
+msgstr "鐚��ユ�区��鐚�茘���膈�膣����"
+
+msgid "User temporarily unavailable"
+msgstr "篏睡��������筝����筝�"
+
+msgid "No match"
+msgstr "羃����悟���荐���"
+
+# NOTE SNAC ���篁g⊆21 (0x15)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
+# NOTE OSCAR ��絎��喝���筝�腮���List��鐚�茘�����絅遵�羝��������巡�絨�
+msgid "List overflow"
+msgstr "羝���群羯�"
+
+msgid "Request ambiguous"
+msgstr "筝���∈��茫�羆�"
+
+msgid "Queue full"
+msgstr "篏���綏我賛"
+
+# NOTE SNAC ���篁g⊆24 (0x18)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
+# NOTE ���醇������ AOL 茖頳�羆�篋�筝�腮� ICQ ������
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "Not while on AOL"
+msgstr "筝������� AOL"
+
 #  NOTE ������絖�筝峨�� Oscar (ICQ) ��茹i����④鐚�http://pidgin.im/pipermail/translators/2010-November/000554.html
 #  NOTE Oscar: ��絅遵��医��� Visible List ��
 #  NOTE Yahoo: �����冴���沿昆����鐚�絨�����絎���絅遵��援┗筝�膩�
@@ -8988,14 +8996,14 @@
 msgid "Select Server"
 msgstr "�御��篌堺����"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "篏睡�� TCP �g�"
@@ -12626,10 +12634,6 @@
 msgid "Fatal Error"
 msgstr "�顔�����荐���"
 
-# XXX ��⑮ - 20090226 acli
-msgid "bug master"
-msgstr "�ら��源膊�"
-
 # NOTE ������artist��鐚����ユ�弱�銀�����Artist��絖�筝駕�篆���荐㊧�pidgin��腓榊����graphic designer��鐚�腟�絨�筝���⑮������篋冴��
 msgid "artist"
 msgstr "綛渇�∵┃荐�"
@@ -12835,6 +12839,11 @@
 msgid "Maithili"
 msgstr "��������"
 
+#  NOTE 篁g⊆ mhr鐚�筝�腮����㊧�膤紫���掩�茯���鐚�膓㊤�榊�丞�茘���綛喝�育Μ��茯���
+#  XXX �鞘��井③綣���佂�h⑮��鐚����� http://zh.wikipedia.org/zh/薊���莚�
+msgid "Meadow Mari"
+msgstr "綛喝�育Μ����"
+
 #  NOTE��薤��狗���������腮��掩�茯���鐚�莊�絽�����薤��狗��筝��♂��篆�
 msgid "Macedonian"
 msgstr "薤��狗����"
@@ -16027,6 +16036,13 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "篏�羃���罨���腱脂�ょ�綣��"
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr "�Û����腟���箴���ソ��羝���賢��篏睡����"
+
+# XXX ��⑮ - 20090226 acli
+#~ msgid "bug master"
+#~ msgstr "�ら��源膊�"
+
 #~ msgid "An error occurred on the in-band bytestream transfer\n"
 #~ msgstr "絽九�т���腟�羌��活叱��筝㊦�主�����\n"
 
--- a/po/zh_TW.po	Sun Jan 09 23:32:10 2011 +0000
+++ b/po/zh_TW.po	Sat Feb 12 23:54:14 2011 +0000
@@ -1,12 +1,12 @@
 # Pidgin's Traditional Chinese translation
-# Copyright (C) 2002-2010, Paladin R. Liu <paladin@ms1.hinet.net>
-# Copyright (C) 2003-2010, Ambrose C. Li <ambrose.li@gmail.com>
+# Copyright (C) 2002-2011, Paladin R. Liu <paladin@ms1.hinet.net>
+# Copyright (C) 2003-2011, Ambrose C. Li <ambrose.li@gmail.com>
 #
 # PLEASE DO NOT ATTEMPT TO UPDATE THIS FILE IF THERE ARE NO
 # LINE NUMBERS (LINES BEGINNING WITH #:) IN THIS FILE.
 #
 # This file is distributed under the same license as the "Pidgin" package.
-# $InternalId: zh_TW.po,v 1.659 2010/12/17 03:16:38 acli Exp $
+# $InternalId: zh_TW.po,v 1.661 2011/02/01 04:45:39 acli Exp $
 #
 # ----------------------------------------------------------
 # For internal use only:
@@ -58,9 +58,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Pidgin 2.7.8\n"
+"Project-Id-Version: Pidgin 2.7.9\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-19 13:34-0500\n"
+"POT-Creation-Date: 2011-02-02 23:34-0500\n"
 "PO-Revision-Date: 2010-12-16 19:32-0500\n"
 "Last-Translator: Ambrose Li <ambrose.li@gmail.com>\n"
 "Language-Team: Chinese (Traditional) <zh-l10n@linux.org.tw>\n"
@@ -2437,8 +2437,10 @@
 "罟�罅��峨�莊��\n"
 "鐚�茫���箴�絎��頑君緇�鐚�"
 
-msgid "Automatically reject from users not in buddy list"
-msgstr "������腟���箴���ソ��羝���賢��篏睡����"
+msgid ""
+"When a file-transfer request arrives from a user who is\n"
+"*not* on your buddy list:"
+msgstr "�銀���筝�����ソ��羝����х��篏睡����荀�羆�罟�罅��活叱��"
 
 msgid ""
 "Notify with a popup when an autoaccepted file transfer is complete\n"
@@ -2451,6 +2453,9 @@
 msgid "Create a new directory for each user"
 msgstr "腟����篏睡����綮榊�荅俄戎����絨��������"
 
+msgid "Escape the filenames"
+msgstr "�後�堺�罅���腮延賢���劫�ュ���"
+
 msgid "Notes"
 msgstr "��荐�"
 
@@ -3918,7 +3923,10 @@
 msgid "Server requires plaintext authentication over an unencrypted stream"
 msgstr "篌堺������荀�膓��掩�����絲���筝我��画�����茯�茘�"
 
-#. This should never happen!
+#. This happens when the server sends back jibberish
+#. * in the "additional data with success" case.
+#. * Seen with Wildfire 3.0.1.
+#.
 msgid "Invalid response from server"
 msgstr "篌堺������箴�篋��≧��������"
 
@@ -6432,6 +6440,21 @@
 msgid "Retrieving User Information..."
 msgstr "莅���篏睡����莖�荐�筝�..."
 
+#. you were kicked
+msgid "You have been kicked from this MultiMX."
+msgstr "��群膓�緇�MultiMX筝㊧←荼√�冴��"
+
+msgid "was kicked"
+msgstr "茴�権��"
+
+msgid "_Room Name:"
+msgstr "��紊����腮�(_R)鐚�"
+
+# NOTE 緇�綏�������鐚��九��翫��筝�筝���緇�����You have invited: %s��鐚�%s ��←��茫���鐚�
+#. Display system message in chat window
+msgid "You have invited"
+msgstr "����茫�篋�"
+
 msgid "Loading menu..."
 msgstr "莠��ユ���賢..."
 
@@ -6460,21 +6483,6 @@
 msgid "Enable splash-screen popup"
 msgstr "�����������√��肴�腦�"
 
-#. you were kicked
-msgid "You have been kicked from this MultiMX."
-msgstr "��群膓�緇�MultiMX筝㊧←荼√�冴��"
-
-msgid "was kicked"
-msgstr "茴�権��"
-
-msgid "_Room Name:"
-msgstr "��紊����腮�(_R)鐚�"
-
-# NOTE 緇�綏�������鐚��九��翫��筝�筝���緇�����You have invited: %s��鐚�%s ��←��茫���鐚�
-#. Display system message in chat window
-msgid "You have invited"
-msgstr "����茫�篋�"
-
 msgid "Last Online"
 msgstr "��緇�筝�膩�"
 
@@ -8124,90 +8132,6 @@
 "����荀�羆�絨����������肢����綮榊�莎欠�贋・�g�鐚����������渇���恰��荐���襲�����鏆�������"
 "��罔e������我���� IP 篏���鐚���罩ゅ��醇�����援��拷�∝��蘂�����"
 
-msgid "Invalid SNAC"
-msgstr "�≧���� SNAC"
-
-msgid "Server rate limit exceeded"
-msgstr "莇��坂�篌堺�����������筝���"
-
-msgid "Client rate limit exceeded"
-msgstr "莇��坂����句�������筝���"
-
-# NOTE SNAC ���篁g⊆5鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
-# NOTE ��篆���腟��篋�筝���綏峨�臂������� (Service, Family)鐚�篏�����腮����鐚�篌堺���������≧���箴�荅我����
-msgid "Service unavailable"
-msgstr "����筝�絖���"
-
-msgid "Service not defined"
-msgstr "�������臂�"
-
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "Obsolete SNAC"
-msgstr "綏俄�綮∝����綣� SNAC"
-
-msgid "Not supported by host"
-msgstr "篌堺��������"
-
-msgid "Not supported by client"
-msgstr "���句�筝����"
-
-msgid "Refused by client"
-msgstr "頮����句���腟�"
-
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "Reply too big"
-msgstr "����紊�ぇ"
-
-msgid "Responses lost"
-msgstr "�阪け����"
-
-msgid "Request denied"
-msgstr "茫�羆�茴���"
-
-# NOTE SNAC ���篁g⊆14 (0x0e)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚��� SNAC 莢�莠��у�榊憘��弱�筝������
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "Busted SNAC payload"
-msgstr "�後���� SNAC 莢�莠�"
-
-msgid "Insufficient rights"
-msgstr "罨���筝�紊�"
-
-# NOTE SNAC ���篁g⊆16 (0x10)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "In local permit/deny"
-msgstr "�����亥�����荐縁���腟�羝�����"
-
-# NOTE SNAC ���篁g⊆17 (0x11)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚���荀��銀�羔�����warning level����茘���
-msgid "Warning level too high (sender)"
-msgstr "鐚��守����鐚�茘���膈�膣����"
-
-# NOTE SNAC ���篁g⊆18 (0x12)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚���荀��銀�羔�����warning level����茘���
-msgid "Warning level too high (receiver)"
-msgstr "鐚��ユ�区��鐚�茘���膈�膣����"
-
-msgid "User temporarily unavailable"
-msgstr "篏睡��������筝����筝�"
-
-msgid "No match"
-msgstr "羃����悟���荐���"
-
-# NOTE SNAC ���篁g⊆21 (0x15)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
-# NOTE OSCAR ��絎��喝���筝�腮���List��鐚�茘�����絅遵�羝��������巡�絨�
-msgid "List overflow"
-msgstr "羝���群羯�"
-
-msgid "Request ambiguous"
-msgstr "筝���∈��茫�羆�"
-
-msgid "Queue full"
-msgstr "篏���綏我賛"
-
-# NOTE SNAC ���篁g⊆24 (0x18)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
-# NOTE ���醇������ AOL 茖頳�羆�篋�筝�腮� ICQ ������
-# XXX 茘�����緇��拷�� - acli 20100809
-msgid "Not while on AOL"
-msgstr "筝������� AOL"
-
 #. Label
 msgid "Buddy Icon"
 msgstr "絅遵���腓�"
@@ -8342,6 +8266,90 @@
 msgid "Capabilities"
 msgstr "�後���"
 
+msgid "Invalid SNAC"
+msgstr "�≧���� SNAC"
+
+msgid "Server rate limit exceeded"
+msgstr "莇��坂�篌堺�����������筝���"
+
+msgid "Client rate limit exceeded"
+msgstr "莇��坂����句�������筝���"
+
+# NOTE SNAC ���篁g⊆5鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
+# NOTE ��篆���腟��篋�筝���綏峨�臂������� (Service, Family)鐚�篏�����腮����鐚�篌堺���������≧���箴�荅我����
+msgid "Service unavailable"
+msgstr "����筝�絖���"
+
+msgid "Service not defined"
+msgstr "�������臂�"
+
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "Obsolete SNAC"
+msgstr "綏俄�綮∝����綣� SNAC"
+
+msgid "Not supported by host"
+msgstr "篌堺��������"
+
+msgid "Not supported by client"
+msgstr "���句�筝����"
+
+msgid "Refused by client"
+msgstr "頮����句���腟�"
+
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "Reply too big"
+msgstr "����紊�ぇ"
+
+msgid "Responses lost"
+msgstr "�阪け����"
+
+msgid "Request denied"
+msgstr "茫�羆�茴���"
+
+# NOTE SNAC ���篁g⊆14 (0x0e)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚��� SNAC 莢�莠��у�榊憘��弱�筝������
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "Busted SNAC payload"
+msgstr "�後���� SNAC 莢�莠�"
+
+msgid "Insufficient rights"
+msgstr "罨���筝�紊�"
+
+# NOTE SNAC ���篁g⊆16 (0x10)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "In local permit/deny"
+msgstr "�����亥�����荐縁���腟�羝�����"
+
+# NOTE SNAC ���篁g⊆17 (0x11)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚���荀��銀�羔�����warning level����茘���
+msgid "Warning level too high (sender)"
+msgstr "鐚��守����鐚�茘���膈�膣����"
+
+# NOTE SNAC ���篁g⊆18 (0x12)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html鐚���荀��銀�羔�����warning level����茘���
+msgid "Warning level too high (receiver)"
+msgstr "鐚��ユ�区��鐚�茘���膈�膣����"
+
+msgid "User temporarily unavailable"
+msgstr "篏睡��������筝����筝�"
+
+msgid "No match"
+msgstr "羃����悟���荐���"
+
+# NOTE SNAC ���篁g⊆21 (0x15)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
+# NOTE OSCAR ��絎��喝���筝�腮���List��鐚�茘�����絅遵�羝��������巡�絨�
+msgid "List overflow"
+msgstr "羝���群羯�"
+
+msgid "Request ambiguous"
+msgstr "筝���∈��茫�羆�"
+
+msgid "Queue full"
+msgstr "篏���綏我賛"
+
+# NOTE SNAC ���篁g⊆24 (0x18)鐚�荀� http://iserverd.khstu.ru/oscar/errorlist.html
+# NOTE ���醇������ AOL 茖頳�羆�篋�筝�腮� ICQ ������
+# XXX 茘�����緇��拷�� - acli 20100809
+msgid "Not while on AOL"
+msgstr "筝������� AOL"
+
 #  NOTE ������絖�筝峨�� Oscar (ICQ) ��茹i����④鐚�http://pidgin.im/pipermail/translators/2010-November/000554.html
 #  NOTE Oscar: ��絅遵��医��� Visible List ��
 #  NOTE Yahoo: �����冴���沿昆����鐚�絨�����絎���絅遵��援┗筝�膩�
@@ -8986,14 +8994,14 @@
 msgid "Select Server"
 msgstr "�御��篌堺����"
 
-msgid "QQ2005"
-msgstr "QQ2005"
+msgid "QQ2008"
+msgstr "QQ2008"
 
 msgid "QQ2007"
 msgstr "QQ2007"
 
-msgid "QQ2008"
-msgstr "QQ2008"
+msgid "QQ2005"
+msgstr "QQ2005"
 
 msgid "Connect by TCP"
 msgstr "篏睡�� TCP �g�"
@@ -12620,10 +12628,6 @@
 msgid "Fatal Error"
 msgstr "�顔�����荐���"
 
-# XXX ��⑮ - 20090226 acli
-msgid "bug master"
-msgstr "�ら��源膊�"
-
 # NOTE ������artist��鐚����ユ�弱�銀�����Artist��絖�筝駕�篆���荐㊧�pidgin��腓榊����graphic designer��鐚�腟�絨�筝���⑮������篋冴��
 msgid "artist"
 msgstr "綛渇�∵┃荐�"
@@ -12829,6 +12833,11 @@
 msgid "Maithili"
 msgstr "��������"
 
+#  NOTE 篁g⊆ mhr鐚�筝�腮����㊧�膤紫���掩�茯���鐚�膓㊤�榊�丞�茘���綛喝�育Μ��茯���
+#  XXX �鞘��井③綣���佂�h⑮��鐚����� http://zh.wikipedia.org/zh/薊���莚�
+msgid "Meadow Mari"
+msgstr "綛喝�育Μ����"
+
 #  NOTE��薤��狗���������腮��掩�茯���鐚�莊�絽�����薤��狗��筝��♂��篆�
 msgid "Macedonian"
 msgstr "薤��狗����"
@@ -16021,6 +16030,13 @@
 msgid "You do not have permission to uninstall this application."
 msgstr "�����罨���腱脂�ょ�綣��"
 
+#~ msgid "Automatically reject from users not in buddy list"
+#~ msgstr "�Û����腟���箴���ソ��羝���賢��篏睡����"
+
+# XXX ��⑮ - 20090226 acli
+#~ msgid "bug master"
+#~ msgstr "�ら��源膊�"
+
 #~ msgid "An error occurred on the in-band bytestream transfer\n"
 #~ msgstr "絽九�т���腟�羌��活叱��筝㊦�主�����\n"
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/ca-certs/AddTrust_External_Root.pem	Sat Feb 12 23:54:14 2011 +0000
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
--- a/share/ca-certs/Makefile.am	Sun Jan 09 23:32:10 2011 +0000
+++ b/share/ca-certs/Makefile.am	Sat Feb 12 23:54:14 2011 +0000
@@ -1,4 +1,5 @@
 CERTIFICATES = \
+		AddTrust_External_Root.pem \
 		America_Online_Root_Certification_Authority_1.pem \
 		CAcert_Root.pem \
 		CAcert_Class3.pem \