pidgin.next.minor: 2357a977: Change "screen name" to "username" or "b...

markdoliner at pidgin.im markdoliner at pidgin.im
Mon Jan 26 04:15:35 EST 2009


-----------------------------------------------------------------
Revision: 2357a977fc308a8f3e2f2c7447bb6c0bfe40f698
Ancestor: 9f81e5912c4245df68c957dbc1a9d19c0fb17207
Author: markdoliner at pidgin.im
Date: 2009-01-26T09:12:04
Branch: im.pidgin.pidgin.next.minor
URL: http://d.pidgin.im/viewmtn/revision/info/2357a977fc308a8f3e2f2c7447bb6c0bfe40f698

Modified files:
        doc/TCL-HOWTO.dox doc/notify-signals.dox doc/pidgin.1.in
        finch/gntaccount.c finch/gntlog.c finch/gntlog.h
        finch/gntrequest.c libpurple/blist.c libpurple/blist.h
        libpurple/connection.h libpurple/log.h
        libpurple/plugins/perl/common/BuddyList.xs
        libpurple/protocols/oscar/family_admin.c
        libpurple/protocols/oscar/family_alert.c
        libpurple/protocols/oscar/family_auth.c
        libpurple/protocols/oscar/family_bart.c
        libpurple/protocols/oscar/family_bos.c
        libpurple/protocols/oscar/family_buddy.c
        libpurple/protocols/oscar/family_feedbag.c
        libpurple/protocols/oscar/family_icbm.c
        libpurple/protocols/oscar/family_locate.c
        libpurple/protocols/oscar/family_odir.c
        libpurple/protocols/oscar/odc.c
        libpurple/protocols/oscar/oft.c
        libpurple/protocols/oscar/oscar.c
        libpurple/protocols/oscar/oscar.h
        libpurple/protocols/oscar/peer.c
        libpurple/protocols/oscar/peer.h
        libpurple/protocols/oscar/peer_proxy.c
        libpurple/protocols/oscar/snactypes.h
        libpurple/protocols/oscar/util.c
        libpurple/protocols/yahoo/yahoo.c libpurple/prpl.h
        libpurple/server.h pidgin/gtkaccount.c pidgin/gtkblist.h
        pidgin/gtklog.c pidgin/gtklog.h pidgin/gtksavedstatuses.c
        pidgin/gtkutils.c pidgin/gtkutils.h
        pidgin/plugins/gevolution/gevo-util.c
        pidgin/plugins/gevolution/gevolution.c
        pidgin/plugins/gevolution/new_person_dialog.c
        pidgin/plugins/perl/common/GtkLog.xs

ChangeLog: 

Change "screen name" to "username" or "buddy name" in a whole bunch of
places in the code.  I've been using the definitions from the jabber
specs, where "user" is me and "buddy" is someone on my buddy list.

-------------- next part --------------
============================================================
--- doc/TCL-HOWTO.dox	11df585c04c34a27cff4964051b38abf243d6e67
+++ doc/TCL-HOWTO.dox	e1051d949e17f2b837356039c1123d30966e0373
@@ -332,7 +332,7 @@ provided with three arguments; the accou
 callbacks will live in the namespace @c event underneath that
 namespace.  To briefly illustrate, the signal @c receiving-im-msg is
 provided with three arguments; the account on which the IM was
-received, the screen name of the user sending the IM, and the text of
+received, the name of the buddy sending the IM, and the text of
 the IM.  These arguments live in the variables @c event::account,
 @c event::sender, and @c event::buffer, respectively.  Therefore a callback
 which notifies the user of an incoming IM containing the word 'shizzle'
============================================================
--- doc/notify-signals.dox	6c626bc8e6cc2ca20f7fc2a70faaee79a3e25a51
+++ doc/notify-signals.dox	e81ed59f7665713d185d5a84ae969906b346175d
@@ -18,7 +18,7 @@ void (*displaying_userinfo)(PurpleAccoun
   @note
     If adding a PurpleNotifyUserInfoEntry, be sure not to free it -- PurpleNotifyUserInfo assumes responsibility for its objects.
   @param account   The account on which the info was obtained.
-  @param who       The screen name of the user whose info is to be displayed.
+  @param who       The name of the buddy whose info is to be displayed.
   @param user_info The information to be displayed, as PurpleNotifyUserInfoEntry objects
  @endsignaldef
 
============================================================
--- doc/pidgin.1.in	d4029e6a1c3e65486c96734c914c8b08cbefe173
+++ doc/pidgin.1.in	4e7b44b3a378e889d301795686b4aab5c9a3557f
@@ -128,11 +128,11 @@ Create an alias for this buddy.  This wi
 .TP
 .B Alias
 Create an alias for this buddy.  This will show an editable text field where
-the buddy's screen name was displayed.  In this field one can give this
+the buddy's name was displayed.  In this field one can give this
 buddy an alternate, more friendly name to appear on the buddy list and in
 conversations.
 
-For example, if a buddy's name screen name was jsmith1281xx and his real
+For example, if a buddy's name was jsmith1281xx and his real
 name was 'John Q. Smith,' one could create an alias as to identify the
 buddy by his common name.
 .LP
@@ -150,7 +150,7 @@ window.  Here, the user  can add or alte
 Clicking \fIDelete\fR will delete the currently selected account.
 Clicking \fIAdd\fR or \fIModify\fR will invoke a \fBModify Account\fR
 window.  Here, the user  can add or alter account information.  When creating
-a new account, the user will submit a screen name and password.  The user will
+a new account, the user will submit a username and password.  The user will
 also choose the protocol for the account.
 
 If \fIRemember Password\fR is chosen, the password will be saved in
@@ -545,7 +545,7 @@ about this interaction exists.
 .br
   \fI~/.purple/status.xml\fR: stores the user's away messages.
 .br
-  \fI~/.purple/logs/PROTOCOL/ACCOUNT/SCREENNAME/DATE.{html,txt}\fR: conversation logs.
+  \fI~/.purple/logs/PROTOCOL/ACCOUNT/BUDDYNAME/DATE.{html,txt}\fR: conversation logs.
 
 .SH DIRECTORIES
   \fI at prefix@/lib/pidgin/\fR: Pidgin's plugins directory.
============================================================
--- finch/gntaccount.c	bdba07c90eb585df16faa9be58dc27697ebff94d
+++ finch/gntaccount.c	ad5bad90ce6fb9b08f62329ac36e8cc5dcfb71d0
@@ -65,7 +65,7 @@ typedef struct
 	GntWidget *window;
 
 	GntWidget *protocol;
-	GntWidget *screenname;
+	GntWidget *username;
 	GntWidget *password;
 	GntWidget *alias;
 
@@ -118,8 +118,8 @@ save_account_cb(AccountEditDialog *dialo
 	plugin = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(dialog->protocol));
 	prplinfo = PURPLE_PLUGIN_PROTOCOL_INFO(plugin);
 
-	/* Screenname && user-splits */
-	value = gnt_entry_get_text(GNT_ENTRY(dialog->screenname));
+	/* Username && user-splits */
+	value = gnt_entry_get_text(GNT_ENTRY(dialog->username));
 
 	if (value == NULL || *value == '\0')
 	{
@@ -326,7 +326,7 @@ update_user_splits(AccountEditDialog *di
 	}
 
 	if (username != NULL)
-		gnt_entry_set_text(GNT_ENTRY(dialog->screenname), username);
+		gnt_entry_set_text(GNT_ENTRY(dialog->username), username);
 
 	g_free(username);
 }
@@ -546,7 +546,7 @@ edit_account(PurpleAccount *account)
 	gnt_box_set_pad(GNT_BOX(hbox), 0);
 	gnt_box_add_widget(GNT_BOX(window), hbox);
 
-	dialog->screenname = entry = gnt_entry_new(NULL);
+	dialog->username = entry = gnt_entry_new(NULL);
 	gnt_box_add_widget(GNT_BOX(hbox), gnt_label_new(_("Username:")));
 	gnt_box_add_widget(GNT_BOX(hbox), entry);
 
============================================================
--- finch/gntlog.c	991975dfaa8d0bf28aa2064139bd24152ebcaca7
+++ finch/gntlog.c	09bb7e96f11f41c9311b7b587d5e016e2c31bafd
@@ -49,7 +49,7 @@ struct log_viewer_hash_t {
 
 struct log_viewer_hash_t {
 	PurpleLogType type;
-	char *screenname;
+	char *username;
 	PurpleAccount *account;
 	PurpleContact *contact;
 };
@@ -62,7 +62,7 @@ static guint log_viewer_hash(gconstpoint
 		return g_direct_hash(viewer->contact);
 
 	if (viewer->account) {
-		return g_str_hash(viewer->screenname) +
+		return g_str_hash(viewer->username) +
 			g_str_hash(purple_account_get_username(viewer->account));
 	}
 
@@ -88,10 +88,10 @@ static gboolean log_viewer_equal(gconstp
 			return FALSE;
 	}
 
-	if (a->screenname && b->screenname) {
-		normal = g_strdup(purple_normalize(a->account, a->screenname));
+	if (a->username && b->username) {
+		normal = g_strdup(purple_normalize(a->account, a->username));
 		ret = (a->account == b->account) &&
-			!strcmp(normal, purple_normalize(b->account, b->screenname));
+			!strcmp(normal, purple_normalize(b->account, b->username));
 		g_free(normal);
 	} else {
 		ret = (a == b);
@@ -155,7 +155,7 @@ static void destroy_cb(GntWidget *w, str
 		lv = g_hash_table_lookup(log_viewers, ht);
 		g_hash_table_remove(log_viewers, ht);
 
-		g_free(ht->screenname);
+		g_free(ht->username);
 		g_free(ht);
 	} else
 		syslog_viewer = NULL;
@@ -284,7 +284,7 @@ static FinchLogViewer *display_log_viewe
 				if (!purple_prefs_get_bool("/purple/logging/log_chats"))
 					log_preferences = _("Chats will only be logged if the \"Log all chats\" preference is enabled.");
 			}
-			g_free(ht->screenname);
+			g_free(ht->username);
 			g_free(ht);
 		}
 
@@ -365,31 +365,31 @@ our_logging_blows(PurpleLogSet *set, Pur
 	*list = g_list_concat(purple_log_get_logs(PURPLE_LOG_IM, set->name, set->account), *list);
 }
 
-void finch_log_show(PurpleLogType type, const char *screenname, PurpleAccount *account)
+void finch_log_show(PurpleLogType type, const char *username, PurpleAccount *account)
 {
 	struct log_viewer_hash_t *ht;
 	FinchLogViewer *lv = NULL;
-	const char *name = screenname;
+	const char *name = username;
 	char *title;
 	GList *logs = NULL;
 	int size = 0;
 
 	if (type != PURPLE_LOG_IM) {
 		g_return_if_fail(account != NULL);
-		g_return_if_fail(screenname != NULL);
+		g_return_if_fail(username != NULL);
 	}
 
 	ht = g_new0(struct log_viewer_hash_t, 1);
 
 	ht->type = type;
-	ht->screenname = g_strdup(screenname);
+	ht->username = g_strdup(username);
 	ht->account = account;
 
 	if (log_viewers == NULL) {
 		log_viewers = g_hash_table_new(log_viewer_hash, log_viewer_equal);
 	} else if ((lv = g_hash_table_lookup(log_viewers, ht))) {
 		gnt_window_present(lv->window);
-		g_free(ht->screenname);
+		g_free(ht->username);
 		g_free(ht);
 		return;
 	}
@@ -397,7 +397,7 @@ void finch_log_show(PurpleLogType type, 
 	if (type == PURPLE_LOG_CHAT) {
 		PurpleChat *chat;
 
-		chat = purple_blist_find_chat(account, screenname);
+		chat = purple_blist_find_chat(account, username);
 		if (chat != NULL)
 			name = purple_chat_get_name(chat);
 
@@ -405,8 +405,8 @@ void finch_log_show(PurpleLogType type, 
 	} else {
 		PurpleBuddy *buddy;
 
-		if (screenname) {
-			buddy = purple_find_buddy(account, screenname);
+		if (username) {
+			buddy = purple_find_buddy(account, username);
 			if (buddy != NULL)
 				name = purple_buddy_get_contact_alias(buddy);
 			title = g_strdup_printf(_("Conversations with %s"), name);
@@ -415,9 +415,9 @@ void finch_log_show(PurpleLogType type, 
 		}
 	}
 
-	if (screenname) {
-		logs = purple_log_get_logs(type, screenname, account);
-		size = purple_log_get_total_size(type, screenname, account);
+	if (username) {
+		logs = purple_log_get_logs(type, username, account);
+		size = purple_log_get_total_size(type, username, account);
 	} else {
 		/* This will happen only for IMs */
 		GHashTable *table = purple_log_get_log_sets();
============================================================
--- finch/gntlog.h	1c962537280047cbb8483db7578d0ec325c59ce5
+++ finch/gntlog.h	142af3d5e2b4d904c6e848eb7c3d554d48f5d9fe
@@ -50,7 +50,7 @@ struct _FinchLogViewer {
 
 
 
-void finch_log_show(PurpleLogType type, const char *screenname, PurpleAccount *account);
+void finch_log_show(PurpleLogType type, const char *username, PurpleAccount *account);
 void finch_log_show_contact(PurpleContact *contact);
 
 void finch_syslog_show(void);
============================================================
--- finch/gntrequest.c	f3c3690d58d6b6117b1901ef9a7dffc70663ef8e
+++ finch/gntrequest.c	bebb397405fd5e53b8cc8c2156683f9b62354f61
@@ -399,11 +399,11 @@ static void
 }
 
 static void
-update_selected_account(GntEntry *screenname, const char *start, const char *end,
+update_selected_account(GntEntry *username, const char *start, const char *end,
 		GntComboBox *accountlist)
 {
 	GList *accounts = gnt_tree_get_rows(GNT_TREE(accountlist->dropdown));
-	const char *name = gnt_entry_get_text(screenname);
+	const char *name = gnt_entry_get_text(username);
 	while (accounts) {
 		if (purple_find_buddy(accounts->data, name)) {
 			gnt_combo_box_set_selected(accountlist, accounts->data);
@@ -425,7 +425,7 @@ static GntWidget*
 }
 
 static GntWidget*
-create_string_field(PurpleRequestField *field, GntWidget **screenname)
+create_string_field(PurpleRequestField *field, GntWidget **username)
 {
 	const char *hint = purple_request_field_get_type_hint(field);
 	GntWidget *entry = gnt_entry_new(
@@ -441,8 +441,8 @@ create_string_field(PurpleRequestField *
 			gnt_entry_add_suggest(GNT_ENTRY(entry), purple_buddy_get_name((PurpleBuddy*)node));
 		}
 		gnt_entry_set_always_suggest(GNT_ENTRY(entry), TRUE);
-		if (screenname)
-			*screenname = entry;
+		if (username)
+			*username = entry;
 	} else if (hint && !strcmp(hint, "group")) {
 		PurpleBlistNode *node;
 		for (node = purple_blist_get_root(); node;
@@ -575,7 +575,7 @@ finch_request_fields(const char *title, 
 {
 	GntWidget *window, *box;
 	GList *grlist;
-	GntWidget *screenname = NULL, *accountlist = NULL;
+	GntWidget *username = NULL, *accountlist = NULL;
 
 	window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_FIELDS);
 
@@ -623,7 +623,7 @@ finch_request_fields(const char *title, 
 			}
 			else if (type == PURPLE_REQUEST_FIELD_STRING)
 			{
-				FINCH_SET_DATA(field, create_string_field(field, &screenname));
+				FINCH_SET_DATA(field, create_string_field(field, &username));
 			}
 			else if (type == PURPLE_REQUEST_FIELD_INTEGER)
 			{
@@ -662,8 +662,8 @@ finch_request_fields(const char *title, 
 	setup_default_callback(window, cancel_cb, userdata);
 	gnt_widget_show(window);
 
-	if (screenname && accountlist) {
-		g_signal_connect(screenname, "completion", G_CALLBACK(update_selected_account), accountlist);
+	if (username && accountlist) {
+		g_signal_connect(username, "completion", G_CALLBACK(update_selected_account), accountlist);
 	}
 
 	g_object_set_data(G_OBJECT(window), "fields", allfields);
============================================================
--- libpurple/blist.c	2dea7fe7cd067117a1f1556ee7e7c4c355a96a2e
+++ libpurple/blist.c	ba2294dc081c1a8f1d5ba8bfd5d19768869d90f1
@@ -1202,17 +1202,17 @@ PurpleChat *purple_chat_new(PurpleAccoun
 	return chat;
 }
 
-PurpleBuddy *purple_buddy_new(PurpleAccount *account, const char *screenname, const char *alias)
+PurpleBuddy *purple_buddy_new(PurpleAccount *account, const char *name, const char *alias)
 {
 	PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
 	PurpleBuddy *buddy;
 
 	g_return_val_if_fail(account != NULL, FALSE);
-	g_return_val_if_fail(screenname != NULL, FALSE);
+	g_return_val_if_fail(name != NULL, FALSE);
 
 	buddy = g_new0(PurpleBuddy, 1);
 	buddy->account  = account;
-	buddy->name     = g_strdup(screenname);
+	buddy->name     = g_strdup(name);
 	buddy->alias    = g_strdup(alias);
 	buddy->presence = purple_presence_new_for_buddy(buddy);
 	((PurpleBlistNode *)buddy)->type = PURPLE_BLIST_BUDDY_NODE;
============================================================
--- libpurple/blist.h	ebf13c7976433245d267eae0de466c38d0285b0c
+++ libpurple/blist.h	940d68f8d08cae1fc27ffa04af27adef9821c377
@@ -136,7 +136,7 @@ struct _PurpleBuddy {
  */
 struct _PurpleBuddy {
 	PurpleBlistNode node;                     /**< The node that this buddy inherits from */
-	char *name;                             /**< The screenname of the buddy. */
+	char *name;                             /**< The name of the buddy. */
 	char *alias;                            /**< The user-set alias of the buddy */
 	char *server_alias;                     /**< The server-specified alias of the buddy.  (i.e. MSN "Friendly Names") */
 	void *proto_data;                       /**< This allows the prpl to associate whatever data it wants with a buddy */
@@ -494,11 +494,11 @@ void purple_blist_add_chat(PurpleChat *c
  * Creates a new buddy
  *
  * @param account    The account this buddy will get added to
- * @param screenname The screenname of the new buddy
+ * @param name       The name of the new buddy
  * @param alias      The alias of the new buddy (or NULL if unaliased)
  * @return           A newly allocated buddy
  */
-PurpleBuddy *purple_buddy_new(PurpleAccount *account, const char *screenname, const char *alias);
+PurpleBuddy *purple_buddy_new(PurpleAccount *account, const char *name, const char *alias);
 
 /**
  * Sets a buddy's icon.
@@ -798,19 +798,19 @@ const char *purple_chat_get_name(PurpleC
 const char *purple_chat_get_name(PurpleChat *chat);
 
 /**
- * Finds the buddy struct given a screenname and an account
+ * Finds the buddy struct given a name and an account
  *
  * @param account The account this buddy belongs to
- * @param name    The buddy's screenname
+ * @param name    The buddy's name
  * @return        The buddy or NULL if the buddy does not exist
  */
 PurpleBuddy *purple_find_buddy(PurpleAccount *account, const char *name);
 
 /**
- * Finds the buddy struct given a screenname, an account, and a group
+ * Finds the buddy struct given a name, an account, and a group
  *
  * @param account The account this buddy belongs to
- * @param name    The buddy's screenname
+ * @param name    The buddy's name
  * @param group   The group to look in
  * @return        The buddy or NULL if the buddy does not exist in the group
  */
@@ -818,10 +818,10 @@ PurpleBuddy *purple_find_buddy_in_group(
 		PurpleGroup *group);
 
 /**
- * Finds all PurpleBuddy structs given a screenname and an account
+ * Finds all PurpleBuddy structs given a name and an account
  *
  * @param account The account this buddy belongs to
- * @param name    The buddy's screenname (or NULL to return all buddies in the account)
+ * @param name    The buddy's name (or NULL to return all buddies in the account)
  *
  * @return        A GSList of buddies (which must be freed), or NULL if the buddy doesn't exist
  */
============================================================
--- libpurple/connection.h	9dd15afce16ecc438832fd2aa5cd9885538850ab
+++ libpurple/connection.h	f57665fd83f9b404c0fbfcf5c6677968c1d01d11
@@ -94,7 +94,7 @@ typedef enum
 	PURPLE_CONNECTION_ERROR_NAME_IN_USE = 6,
 
 	/** The username/server/other preference for the account isn't valid.
-	 *  For instance, on IRC the screen name cannot contain white space.
+	 *  For instance, on IRC the username cannot contain white space.
 	 *  This reason should not be used for incorrect passwords etc: use
 	 *  #PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED for that.
 	 *
============================================================
--- libpurple/log.h	755036e9eddc4a71475eb54f928e7520ea09e3c5
+++ libpurple/log.h	fdae3f0adc203739096c27e7d4bb6fc140b28591
@@ -194,7 +194,7 @@ extern "C" {
  * Creates a new log
  *
  * @param type        The type of log this is.
- * @param name        The name of this conversation (screenname, chat name,
+ * @param name        The name of this conversation (buddy name, chat name,
  *                    etc.)
  * @param account     The account the conversation is occurring on
  * @param conv        The conversation being logged
============================================================
--- libpurple/plugins/perl/common/BuddyList.xs	d8f28e69fb7927ebdef452fc9428dc9c55289773
+++ libpurple/plugins/perl/common/BuddyList.xs	376288f3605593bd6e58b308091f79f9fcb2a5cf
@@ -363,9 +363,9 @@ Purple::BuddyList::Buddy
 PROTOTYPES: ENABLE
 
 Purple::BuddyList::Buddy
-purple_buddy_new(account, screenname, alias)
+purple_buddy_new(account, name, alias)
 	Purple::Account account
-	const char *screenname
+	const char *name
 	const char *alias
 
 const char *
============================================================
--- libpurple/protocols/oscar/family_admin.c	9542b730b690c9c1ad7757890960c5f648ea5711
+++ libpurple/protocols/oscar/family_admin.c	d507e141cf3930047f5191ba9b34de13e9f670a4
@@ -21,9 +21,8 @@
 /*
  * Family 0x0007 - Account Administration.
  *
- * Used for stuff like changing the formating of your screen name, changing your
+ * Used for stuff like changing the formating of your username, changing your
  * email address, requesting an account confirmation email, getting account info,
- *
  */
 
 #include "oscar.h"
@@ -32,7 +31,7 @@
  * Subtype 0x0002 - Request a bit of account info.
  *
  * Info should be one of the following:
- * 0x0001 - Screen name formatting
+ * 0x0001 - Username formatting
  * 0x0011 - Email address
  * 0x0013 - Unknown
  */
@@ -111,7 +110,7 @@ infochange(OscarData *od, FlapConnection
 }
 
 /**
- * Subtype 0x0004 - Set screenname formatting.
+ * Subtype 0x0004 - Set the formatting of username (change spaces and capitalization).
  */
 void
 aim_admin_setnick(OscarData *od, FlapConnection *conn, const char *newnick)
============================================================
--- libpurple/protocols/oscar/family_alert.c	0203463e122a14c26d17a0086244501f674a12ed
+++ libpurple/protocols/oscar/family_alert.c	f689723e4c72e1436c7df03af46e42e644210830
@@ -22,10 +22,10 @@
  * Family 0x0018 - Email notification
  *
  * Used for being alerted when the email address(es) associated with
- * your screen name get new electronic-m.  For normal AIM accounts, you
- * get the email address screenname at netscape.net.  AOL accounts have
- * screenname at aol.com, and can also activate a netscape.net account.
- *
+ * your username get new electronic-m.  For normal AIM accounts, you
+ * get the email address username at netscape.net.  AOL accounts have
+ * username at aol.com, and can also activate a netscape.net account.
+ * Note: This information might be out of date.
  */
 
 #include "oscar.h"
@@ -88,7 +88,7 @@ aim_email_sendcookies(OscarData *od)
  * but this is coded so it will handle that, and handle it well.
  * This tells you if you have unread mail or not, the URL you
  * should use to access that mail, and the domain name for the
- * email account (screenname at domainname.com).  If this is the
+ * email account (username at domainname.com).  If this is the
  * first 0x0007 SNAC you've received since you signed on, or if
  * this is just a periodic status update, this will also contain
  * the number of unread emails that you have.
============================================================
--- libpurple/protocols/oscar/family_auth.c	f254a2f8193a50d966cd94a8d21c75b5be30153d
+++ libpurple/protocols/oscar/family_auth.c	f104bd4290a150d962025ee4791d3e4d6d764762
@@ -229,7 +229,7 @@ aim_send_login(OscarData *od, FlapConnec
 
 	/* Truncate ICQ and AOL passwords, if necessary */
 	password_len = strlen(password);
-	if (aim_snvalid_icq(sn) && (password_len > MAXICQPASSLEN))
+	if (oscar_util_valid_name_icq(sn) && (password_len > MAXICQPASSLEN))
 		password_len = MAXICQPASSLEN;
 	else if (truncate_pass && password_len > 8)
 		password_len = 8;
@@ -293,11 +293,11 @@ parse(OscarData *od, FlapConnection *con
 	tlvlist = aim_tlvlist_read(bs);
 
 	/*
-	 * No matter what, we should have a screen name.
+	 * No matter what, we should have a username.
 	 */
 	if (aim_tlv_gettlv(tlvlist, 0x0001, 1)) {
-		info->sn = aim_tlv_getstr(tlvlist, 0x0001, 1);
-		purple_connection_set_display_name(od->gc, info->sn);
+		info->bn = aim_tlv_getstr(tlvlist, 0x0001, 1);
+		purple_connection_set_display_name(od->gc, info->bn);
 	}
 
 	/*
@@ -394,7 +394,7 @@ parse(OscarData *od, FlapConnection *con
 
 #if 0
 	/*
-	 * Unknown.  Seen on an @mac.com screen name with value of 0x003f
+	 * Unknown.  Seen on an @mac.com username with value of 0x003f
 	 */
 	if (aim_tlv_gettlv(tlvlist, 0x0055, 1)) {
 		/* Unhandled */
@@ -421,7 +421,7 @@ parse(OscarData *od, FlapConnection *con
  *   - connect
  *   - server sends flap version
  *   - client sends flap version
- *   - client sends screen name (17/6)
+ *   - client sends username (17/6)
  *   - server sends hash key (17/7)
  *   - client sends auth request (17/2 -- aim_send_login)
  *   - server yells
@@ -460,7 +460,7 @@ goddamnicq(OscarData *od, FlapConnection
  * Subtype 0x0006
  *
  * In AIM 3.5 protocol, the first stage of login is to request login from the
- * Authorizer, passing it the screen name for verification.  If the name is
+ * Authorizer, passing it the username for verification.  If the name is
  * invalid, a 0017/0003 is spit back, with the standard error contents.  If
  * valid, a 0017/0007 comes back, which is the signal to send it the main
  * login command (0017/0002).
@@ -527,7 +527,7 @@ keyparse(OscarData *od, FlapConnection *
 	/*
 	 * If the truncate_pass TLV exists then we should truncate the
 	 * user's password to 8 characters.  This flag is sent to us
-	 * when logging in with an AOL user's screen name.
+	 * when logging in with an AOL user's username.
 	 */
 	truncate_pass = aim_tlv_gettlv(tlvlist, 0x0026, 1) != NULL;
 
@@ -597,7 +597,7 @@ auth_shutdown(OscarData *od, aim_module_
 {
 	if (od->authinfo != NULL)
 	{
-		g_free(od->authinfo->sn);
+		g_free(od->authinfo->bn);
 		g_free(od->authinfo->bosip);
 		g_free(od->authinfo->errorurl);
 		g_free(od->authinfo->email);
============================================================
--- libpurple/protocols/oscar/family_bart.c	ebbba3a44c178330e50662cf9e3e418d43a6abba
+++ libpurple/protocols/oscar/family_bart.c	4a2f5a23c6fddcd7d000594cb14189ac7c231289
@@ -90,26 +90,26 @@ uploadack(OscarData *od, FlapConnection 
  * Subtype 0x0004 - Request someone's icon.
  *
  * @param od The oscar session.
- * @param sn The screen name of the person who's icon you are requesting.
+ * @param bn The name of the buddy whose icon you are requesting.
  * @param iconcsum The MD5 checksum of the icon you are requesting.
  * @param iconcsumlen Length of the MD5 checksum given above.  Should be 10 bytes.
  * @return Return 0 if no errors, otherwise return the error number.
  */
 int
-aim_bart_request(OscarData *od, const char *sn, guint8 iconcsumtype, const guint8 *iconcsum, guint16 iconcsumlen)
+aim_bart_request(OscarData *od, const char *bn, guint8 iconcsumtype, const guint8 *iconcsum, guint16 iconcsumlen)
 {
 	FlapConnection *conn;
 	ByteStream bs;
 	aim_snacid_t snacid;
 
-	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_BART)) || !sn || !strlen(sn) || !iconcsum || !iconcsumlen)
+	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_BART)) || !bn || !strlen(bn) || !iconcsum || !iconcsumlen)
 		return -EINVAL;
 
-	byte_stream_new(&bs, 1+strlen(sn) + 4 + 1+iconcsumlen);
+	byte_stream_new(&bs, 1+strlen(bn) + 4 + 1+iconcsumlen);
 
-	/* Screen name */
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	/* Buddy name */
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
 	/* Some numbers.  You like numbers, right? */
 	byte_stream_put8(&bs, 0x01);
@@ -138,11 +138,11 @@ parseicon(OscarData *od, FlapConnection 
 {
 	int ret = 0;
 	aim_rxcallback_t userfunc;
-	char *sn;
+	char *bn;
 	guint16 flags, iconlen;
 	guint8 iconcsumtype, iconcsumlen, *iconcsum, *icon;
 
-	sn = byte_stream_getstr(bs, byte_stream_get8(bs));
+	bn = byte_stream_getstr(bs, byte_stream_get8(bs));
 	flags = byte_stream_get16(bs);
 	iconcsumtype = byte_stream_get8(bs);
 	iconcsumlen = byte_stream_get8(bs);
@@ -151,9 +151,9 @@ parseicon(OscarData *od, FlapConnection 
 	icon = byte_stream_getraw(bs, iconlen);
 
 	if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-		ret = userfunc(od, conn, frame, sn, iconcsumtype, iconcsum, iconcsumlen, icon, iconlen);
+		ret = userfunc(od, conn, frame, bn, iconcsumtype, iconcsum, iconcsumlen, icon, iconlen);
 
-	g_free(sn);
+	g_free(bn);
 	g_free(iconcsum);
 	g_free(icon);
 
============================================================
--- libpurple/protocols/oscar/family_bos.c	5c0e0cee7c92d6381bd6806f5eff5ee10318d165
+++ libpurple/protocols/oscar/family_bos.c	6f3983dee3dd0ccda439917814b85ecf8bf65b91
@@ -94,8 +94,7 @@ aim_bos_setgroupperm(OscarData *od, Flap
  *  AIM_VISIBILITYCHANGE_DENYADD: Hides you from provided list of names
  *  AIM_VISIBILITYCHANGE_DENYREMOVE: Lets list see you again
  *
- * list should be a list of
- * screen names in the form "Screen Name One&ScreenNameTwo&" etc.
+ * list should be a list of "Buddy Name One&BuddyNameTwo&" etc.
  *
  * Equivelents to options in WinAIM:
  *   - Allow all users to contact me: Send an AIM_VISIBILITYCHANGE_DENYADD
============================================================
--- libpurple/protocols/oscar/family_buddy.c	ea016d2eed0651a6b6622bdfcba4da957534a082
+++ libpurple/protocols/oscar/family_buddy.c	eddc81835e18c88cd7c89b4ac87e4277ee4908cd
@@ -121,7 +121,7 @@ aim_buddylist_addbuddy(OscarData *od, Fl
  *
  * This just builds the "set buddy list" command then queues it.
  *
- * buddy_list = "Screen Name One&ScreenNameTwo&";
+ * buddy_list = "Buddy Name One&BuddyNameTwo&";
  *
  * XXX Clean this up.
  *
@@ -222,7 +222,7 @@ buddychange(OscarData *od, FlapConnectio
 		ret = userfunc(od, conn, frame, &userinfo);
 
 	if (snac->subtype == SNAC_SUBTYPE_BUDDY_ONCOMING && userinfo.flags & AIM_FLAG_AWAY)
-		aim_locate_autofetch_away_message(od, userinfo.sn);
+		aim_locate_autofetch_away_message(od, userinfo.bn);
 
 	aim_info_free(&userinfo);
 
============================================================
--- libpurple/protocols/oscar/family_feedbag.c	fefde7da7267cad0bdeebc4dbf17f2266ff46d8e
+++ libpurple/protocols/oscar/family_feedbag.c	61b3f27d17eaa32d574654eaa16960270068dbc2
@@ -243,7 +243,7 @@ static int aim_ssi_itemlist_cmp(struct a
 	if (!cur1->name && cur2->name)
 		return 6;
 
-	if (cur1->name && cur2->name && aim_sncmp(cur1->name, cur2->name))
+	if (cur1->name && cur2->name && oscar_util_name_compare(cur1->name, cur2->name))
 		return 7;
 
 	if (cur1->gid != cur2->gid)
@@ -285,8 +285,8 @@ struct aim_ssi_item *aim_ssi_itemlist_fi
 }
 
 /**
- * Locally find an item given a group name, screen name, and type.  If group name
- * and screen name are null, then just return the first item of the given type.
+ * Locally find an item given a group name, buddy name, and type.  If group name
+ * and buddy name are null, then just return the first item of the given type.
  *
  * @param list A pointer to the current list of items.
  * @param gn The group name of the desired item.
@@ -294,31 +294,31 @@ struct aim_ssi_item *aim_ssi_itemlist_fi
  * @param type The type of the desired item.
  * @return Return a pointer to the item if found, else return NULL.
  */
-struct aim_ssi_item *aim_ssi_itemlist_finditem(struct aim_ssi_item *list, const char *gn, const char *sn, guint16 type)
+struct aim_ssi_item *aim_ssi_itemlist_finditem(struct aim_ssi_item *list, const char *gn, const char *bn, guint16 type)
 {
 	struct aim_ssi_item *cur;
 	if (!list)
 		return NULL;
 
-	if (gn && sn) { /* For finding buddies in groups */
+	if (gn && bn) { /* For finding buddies in groups */
 		for (cur=list; cur; cur=cur->next)
-			if ((cur->type == type) && (cur->name) && !(aim_sncmp(cur->name, sn))) {
+			if ((cur->type == type) && (cur->name) && !(oscar_util_name_compare(cur->name, bn))) {
 				struct aim_ssi_item *curg;
 				for (curg=list; curg; curg=curg->next)
-					if ((curg->type == AIM_SSI_TYPE_GROUP) && (curg->gid == cur->gid) && (curg->name) && !(aim_sncmp(curg->name, gn)))
+					if ((curg->type == AIM_SSI_TYPE_GROUP) && (curg->gid == cur->gid) && (curg->name) && !(oscar_util_name_compare(curg->name, gn)))
 						return cur;
 			}
 
 	} else if (gn) { /* For finding groups */
 		for (cur=list; cur; cur=cur->next) {
-			if ((cur->type == type) && (cur->bid == 0x0000) && (cur->name) && !(aim_sncmp(cur->name, gn))) {
+			if ((cur->type == type) && (cur->bid == 0x0000) && (cur->name) && !(oscar_util_name_compare(cur->name, gn))) {
 				return cur;
 			}
 		}
 
-	} else if (sn) { /* For finding permits, denies, and ignores */
+	} else if (bn) { /* For finding permits, denies, and ignores */
 		for (cur=list; cur; cur=cur->next) {
-			if ((cur->type == type) && (cur->name) && !(aim_sncmp(cur->name, sn))) {
+			if ((cur->type == type) && (cur->name) && !(oscar_util_name_compare(cur->name, bn))) {
 				return cur;
 			}
 		}
@@ -336,14 +336,14 @@ struct aim_ssi_item *aim_ssi_itemlist_fi
  * Check if the given buddy exists in any group in the buddy list.
  *
  * @param list A pointer to the current list of items.
- * @param sn The group name of the desired item.
+ * @param bn The group name of the desired item.
  * @return Return a pointer to the name of the item if found, else return NULL;
  */
-struct aim_ssi_item *aim_ssi_itemlist_exists(struct aim_ssi_item *list, const char *sn)
+struct aim_ssi_item *aim_ssi_itemlist_exists(struct aim_ssi_item *list, const char *bn)
 {
-	if (!sn)
+	if (!bn)
 		return NULL;
-	return aim_ssi_itemlist_finditem(list, NULL, sn, AIM_SSI_TYPE_BUDDY);
+	return aim_ssi_itemlist_finditem(list, NULL, bn, AIM_SSI_TYPE_BUDDY);
 }
 
 /**
@@ -353,12 +353,12 @@ struct aim_ssi_item *aim_ssi_itemlist_ex
  * @param bn The buddy name of the desired item.
  * @return Return a pointer to the name of the item if found, else return NULL;
  */
-char *aim_ssi_itemlist_findparentname(struct aim_ssi_item *list, const char *sn)
+char *aim_ssi_itemlist_findparentname(struct aim_ssi_item *list, const char *bn)
 {
 	struct aim_ssi_item *cur, *curg;
-	if (!list || !sn)
+	if (!list || !bn)
 		return NULL;
-	if (!(cur = aim_ssi_itemlist_exists(list, sn)))
+	if (!(cur = aim_ssi_itemlist_exists(list, bn)))
 		return NULL;
 	if (!(curg = aim_ssi_itemlist_find(list, cur->gid, 0x0000)))
 		return NULL;
@@ -406,14 +406,14 @@ guint32 aim_ssi_getpresence(struct aim_s
  *
  * @param list A pointer to the current list of items.
  * @param gn The group of the buddy.
- * @param sn The name of the buddy.
+ * @param bn The name of the buddy.
  * @return A pointer to a NULL terminated string that is the buddy's
  *         alias, or NULL if the buddy has no alias.  You should free
  *         this returned value!
  */
-char *aim_ssi_getalias(struct aim_ssi_item *list, const char *gn, const char *sn)
+char *aim_ssi_getalias(struct aim_ssi_item *list, const char *gn, const char *bn)
 {
-	struct aim_ssi_item *cur = aim_ssi_itemlist_finditem(list, gn, sn, AIM_SSI_TYPE_BUDDY);
+	struct aim_ssi_item *cur = aim_ssi_itemlist_finditem(list, gn, bn, AIM_SSI_TYPE_BUDDY);
 	if (cur) {
 		aim_tlv_t *tlv = aim_tlv_gettlv(cur->data, 0x0131, 1);
 		if (tlv && tlv->length)
@@ -427,14 +427,14 @@ char *aim_ssi_getalias(struct aim_ssi_it
  *
  * @param list A pointer to the current list of items.
  * @param gn The group of the buddy.
- * @param sn The name of the buddy.
+ * @param bn The name of the buddy.
  * @return A pointer to a NULL terminated string that is the buddy's
  *         comment, or NULL if the buddy has no comment.  You should free
  *         this returned value!
  */
-char *aim_ssi_getcomment(struct aim_ssi_item *list, const char *gn, const char *sn)
+char *aim_ssi_getcomment(struct aim_ssi_item *list, const char *gn, const char *bn)
 {
-	struct aim_ssi_item *cur = aim_ssi_itemlist_finditem(list, gn, sn, AIM_SSI_TYPE_BUDDY);
+	struct aim_ssi_item *cur = aim_ssi_itemlist_finditem(list, gn, bn, AIM_SSI_TYPE_BUDDY);
 	if (cur) {
 		aim_tlv_t *tlv = aim_tlv_gettlv(cur->data, 0x013c, 1);
 		if (tlv && tlv->length) {
@@ -449,12 +449,12 @@ char *aim_ssi_getcomment(struct aim_ssi_
  *
  * @param list A pointer to the current list of items.
  * @param gn The group of the buddy.
- * @param sn The name of the buddy.
+ * @param bn The name of the buddy.
  * @return 1 if you are waiting for authorization; 0 if you are not
  */
-gboolean aim_ssi_waitingforauth(struct aim_ssi_item *list, const char *gn, const char *sn)
+gboolean aim_ssi_waitingforauth(struct aim_ssi_item *list, const char *gn, const char *bn)
 {
-	struct aim_ssi_item *cur = aim_ssi_itemlist_finditem(list, gn, sn, AIM_SSI_TYPE_BUDDY);
+	struct aim_ssi_item *cur = aim_ssi_itemlist_finditem(list, gn, bn, AIM_SSI_TYPE_BUDDY);
 	if (cur) {
 		if (aim_tlv_gettlv(cur->data, 0x0066, 1))
 			return TRUE;
@@ -678,7 +678,7 @@ int aim_ssi_cleanlist(OscarData *od)
 			cur2 = cur->next;
 			while (cur2) {
 				next2 = cur2->next;
-				if ((cur->type == cur2->type) && (cur->gid == cur2->gid) && (cur->name != NULL) && (cur2->name != NULL) && (!aim_sncmp(cur->name, cur2->name))) {
+				if ((cur->type == cur2->type) && (cur->gid == cur2->gid) && (cur->name != NULL) && (cur2->name != NULL) && (!oscar_util_name_compare(cur->name, cur2->name))) {
 					aim_ssi_itemlist_del(&od->ssi.local, cur2);
 				}
 				cur2 = next2;
@@ -916,16 +916,16 @@ int aim_ssi_deldeny(OscarData *od, const
  * @param od The oscar odion.
  * @param oldgn The group that the buddy is currently in.
  * @param newgn The group that the buddy should be moved in to.
- * @param sn The name of the buddy to be moved.
+ * @param bn The name of the buddy to be moved.
  * @return Return 0 if no errors, otherwise return the error number.
  */
-int aim_ssi_movebuddy(OscarData *od, const char *oldgn, const char *newgn, const char *sn)
+int aim_ssi_movebuddy(OscarData *od, const char *oldgn, const char *newgn, const char *bn)
 {
 	struct aim_ssi_item *buddy;
 	GSList *data;
 
 	/* Find the buddy */
-	buddy = aim_ssi_itemlist_finditem(od->ssi.local, oldgn, sn, AIM_SSI_TYPE_BUDDY);
+	buddy = aim_ssi_itemlist_finditem(od->ssi.local, oldgn, bn, AIM_SSI_TYPE_BUDDY);
 	if (buddy == NULL)
 		return -EINVAL;
 
@@ -933,10 +933,10 @@ int aim_ssi_movebuddy(OscarData *od, con
 	data = aim_tlvlist_copy(buddy->data);
 
 	/* Delete the old item */
-	aim_ssi_delbuddy(od, sn, oldgn);
+	aim_ssi_delbuddy(od, bn, oldgn);
 
 	/* Add the new item using the EXACT SAME TLV list */
-	aim_ssi_addbuddy(od, sn, newgn, data, NULL, NULL, NULL, FALSE);
+	aim_ssi_addbuddy(od, bn, newgn, data, NULL, NULL, NULL, FALSE);
 
 	return 0;
 }
@@ -946,19 +946,19 @@ int aim_ssi_movebuddy(OscarData *od, con
  *
  * @param od The oscar odion.
  * @param gn The group that the buddy is currently in.
- * @param sn The screen name of the buddy.
+ * @param bn The name of the buddy.
  * @param alias The new alias for the buddy, or NULL if you want to remove
  *        a buddy's comment.
  * @return Return 0 if no errors, otherwise return the error number.
  */
-int aim_ssi_aliasbuddy(OscarData *od, const char *gn, const char *sn, const char *alias)
+int aim_ssi_aliasbuddy(OscarData *od, const char *gn, const char *bn, const char *alias)
 {
 	struct aim_ssi_item *tmp;
 
-	if (!od || !gn || !sn)
+	if (!od || !gn || !bn)
 		return -EINVAL;
 
-	if (!(tmp = aim_ssi_itemlist_finditem(od->ssi.local, gn, sn, AIM_SSI_TYPE_BUDDY)))
+	if (!(tmp = aim_ssi_itemlist_finditem(od->ssi.local, gn, bn, AIM_SSI_TYPE_BUDDY)))
 		return -EINVAL;
 
 	/* Either add or remove the 0x0131 TLV from the TLV chain */
@@ -976,19 +976,19 @@ int aim_ssi_aliasbuddy(OscarData *od, co
  *
  * @param od The oscar odion.
  * @param gn The group that the buddy is currently in.
- * @param sn The screen name of the buddy.
+ * @param bn The name of the buddy.
  * @param alias The new comment for the buddy, or NULL if you want to remove
  *        a buddy's comment.
  * @return Return 0 if no errors, otherwise return the error number.
  */
-int aim_ssi_editcomment(OscarData *od, const char *gn, const char *sn, const char *comment)
+int aim_ssi_editcomment(OscarData *od, const char *gn, const char *bn, const char *comment)
 {
 	struct aim_ssi_item *tmp;
 
-	if (!od || !gn || !sn)
+	if (!od || !gn || !bn)
 		return -EINVAL;
 
-	if (!(tmp = aim_ssi_itemlist_finditem(od->ssi.local, gn, sn, AIM_SSI_TYPE_BUDDY)))
+	if (!(tmp = aim_ssi_itemlist_finditem(od->ssi.local, gn, bn, AIM_SSI_TYPE_BUDDY)))
 		return -EINVAL;
 
 	/* Either add or remove the 0x0131 TLV from the TLV chain */
@@ -1681,20 +1681,20 @@ int aim_ssi_modend(OscarData *od)
  * Authorizes a contact so they can add you to their contact list.
  *
  */
-int aim_ssi_sendauth(OscarData *od, char *sn, char *msg)
+int aim_ssi_sendauth(OscarData *od, char *bn, char *msg)
 {
 	FlapConnection *conn;
 	ByteStream bs;
 	aim_snacid_t snacid;
 
-	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_FEEDBAG)) || !sn)
+	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_FEEDBAG)) || !bn)
 		return -EINVAL;
 
-	byte_stream_new(&bs, 1+strlen(sn) + 2+(msg ? strlen(msg)+1 : 0) + 2);
+	byte_stream_new(&bs, 1+strlen(bn) + 2+(msg ? strlen(msg)+1 : 0) + 2);
 
-	/* Screen name */
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	/* Username */
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
 	/* Message (null terminated) */
 	byte_stream_put16(&bs, msg ? strlen(msg) : 0);
@@ -1722,13 +1722,13 @@ static int receiveauthgrant(OscarData *o
 	int ret = 0;
 	aim_rxcallback_t userfunc;
 	guint16 tmp;
-	char *sn, *msg;
+	char *bn, *msg;
 
-	/* Read screen name */
+	/* Read buddy name */
 	if ((tmp = byte_stream_get8(bs)))
-		sn = byte_stream_getstr(bs, tmp);
+		bn = byte_stream_getstr(bs, tmp);
 	else
-		sn = NULL;
+		bn = NULL;
 
 	/* Read message (null terminated) */
 	if ((tmp = byte_stream_get16(bs)))
@@ -1740,9 +1740,9 @@ static int receiveauthgrant(OscarData *o
 	tmp = byte_stream_get16(bs);
 
 	if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-		ret = userfunc(od, conn, frame, sn, msg);
+		ret = userfunc(od, conn, frame, bn, msg);
 
-	g_free(sn);
+	g_free(bn);
 	g_free(msg);
 
 	return ret;
@@ -1755,20 +1755,20 @@ static int receiveauthgrant(OscarData *o
  * granted, denied, or dropped.
  *
  */
-int aim_ssi_sendauthrequest(OscarData *od, char *sn, const char *msg)
+int aim_ssi_sendauthrequest(OscarData *od, char *bn, const char *msg)
 {
 	FlapConnection *conn;
 	ByteStream bs;
 	aim_snacid_t snacid;
 
-	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_FEEDBAG)) || !sn)
+	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_FEEDBAG)) || !bn)
 		return -EINVAL;
 
-	byte_stream_new(&bs, 1+strlen(sn) + 2+(msg ? strlen(msg)+1 : 0) + 2);
+	byte_stream_new(&bs, 1+strlen(bn) + 2+(msg ? strlen(msg)+1 : 0) + 2);
 
-	/* Screen name */
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	/* Username */
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
 	/* Message (null terminated) */
 	byte_stream_put16(&bs, msg ? strlen(msg) : 0);
@@ -1796,13 +1796,13 @@ static int receiveauthrequest(OscarData 
 	int ret = 0;
 	aim_rxcallback_t userfunc;
 	guint16 tmp;
-	char *sn, *msg;
+	char *bn, *msg;
 
-	/* Read screen name */
+	/* Read buddy name */
 	if ((tmp = byte_stream_get8(bs)))
-		sn = byte_stream_getstr(bs, tmp);
+		bn = byte_stream_getstr(bs, tmp);
 	else
-		sn = NULL;
+		bn = NULL;
 
 	/* Read message (null terminated) */
 	if ((tmp = byte_stream_get16(bs)))
@@ -1814,9 +1814,9 @@ static int receiveauthrequest(OscarData 
 	tmp = byte_stream_get16(bs);
 
 	if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-		ret = userfunc(od, conn, frame, sn, msg);
+		ret = userfunc(od, conn, frame, bn, msg);
 
-	g_free(sn);
+	g_free(bn);
 	g_free(msg);
 
 	return ret;
@@ -1832,20 +1832,20 @@ static int receiveauthrequest(OscarData 
  * if reply=0x01 then grant
  *
  */
-int aim_ssi_sendauthreply(OscarData *od, char *sn, guint8 reply, const char *msg)
+int aim_ssi_sendauthreply(OscarData *od, char *bn, guint8 reply, const char *msg)
 {
 	FlapConnection *conn;
 	ByteStream bs;
 	aim_snacid_t snacid;
 
-	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_FEEDBAG)) || !sn)
+	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_FEEDBAG)) || !bn)
 		return -EINVAL;
 
-	byte_stream_new(&bs, 1+strlen(sn) + 1 + 2+(msg ? (strlen(msg)+1) : 0) + 2);
+	byte_stream_new(&bs, 1+strlen(bn) + 1 + 2+(msg ? (strlen(msg)+1) : 0) + 2);
 
-	/* Screen name */
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	/* Username */
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
 	/* Grant or deny */
 	byte_stream_put8(&bs, reply);
@@ -1880,13 +1880,13 @@ static int receiveauthreply(OscarData *o
 	aim_rxcallback_t userfunc;
 	guint16 tmp;
 	guint8 reply;
-	char *sn, *msg;
+	char *bn, *msg;
 
-	/* Read screen name */
+	/* Read buddy name */
 	if ((tmp = byte_stream_get8(bs)))
-		sn = byte_stream_getstr(bs, tmp);
+		bn = byte_stream_getstr(bs, tmp);
 	else
-		sn = NULL;
+		bn = NULL;
 
 	/* Read reply */
 	reply = byte_stream_get8(bs);
@@ -1901,9 +1901,9 @@ static int receiveauthreply(OscarData *o
 	tmp = byte_stream_get16(bs);
 
 	if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-		ret = userfunc(od, conn, frame, sn, reply, msg);
+		ret = userfunc(od, conn, frame, bn, reply, msg);
 
-	g_free(sn);
+	g_free(bn);
 	g_free(msg);
 
 	return ret;
@@ -1917,18 +1917,18 @@ static int receiveadded(OscarData *od, F
 	int ret = 0;
 	aim_rxcallback_t userfunc;
 	guint16 tmp;
-	char *sn;
+	char *bn;
 
-	/* Read screen name */
+	/* Read buddy name */
 	if ((tmp = byte_stream_get8(bs)))
-		sn = byte_stream_getstr(bs, tmp);
+		bn = byte_stream_getstr(bs, tmp);
 	else
-		sn = NULL;
+		bn = NULL;
 
 	if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-		ret = userfunc(od, conn, frame, sn);
+		ret = userfunc(od, conn, frame, bn);
 
-	g_free(sn);
+	g_free(bn);
 
 	return ret;
 }
============================================================
--- libpurple/protocols/oscar/family_icbm.c	80ce9708420fc9a68491d504ae265384ff5a63c9
+++ libpurple/protocols/oscar/family_icbm.c	564af172da8c3c7c31b8c6e84c2456650741e289
@@ -61,16 +61,16 @@
  * @param bs The bstream to write the ICBM header to.
  * @param c c is for cookie, and cookie is for me.
  * @param channel The ICBM channel (1 through 4).
- * @param sn Null-terminated scrizeen nizame.
+ * @param bn Null-terminated scrizeen nizame.
  * @return The number of bytes written.  It's really not useful.
  */
-static int aim_im_puticbm(ByteStream *bs, const guchar *c, guint16 channel, const char *sn)
+static int aim_im_puticbm(ByteStream *bs, const guchar *c, guint16 channel, const char *bn)
 {
 	byte_stream_putraw(bs, c, 8);
 	byte_stream_put16(bs, channel);
-	byte_stream_put8(bs, strlen(sn));
-	byte_stream_putstr(bs, sn);
-	return 8+2+1+strlen(sn);
+	byte_stream_put8(bs, strlen(bn));
+	byte_stream_putstr(bs, bn);
+	return 8+2+1+strlen(bn);
 }
 
 /**
@@ -324,7 +324,7 @@ int aim_im_sendch1_ext(OscarData *od, st
 	aim_icbm_makecookie(cookie);
 
 	/* ICBM header */
-	aim_im_puticbm(&data, cookie, 0x0001, args->destsn);
+	aim_im_puticbm(&data, cookie, 0x0001, args->destbn);
 
 	/* Message TLV (type 0x0002) */
 	byte_stream_put16(&data, 0x0002);
@@ -410,7 +410,7 @@ int aim_im_sendch1_ext(OscarData *od, st
 	}
 
 	/* XXX - should be optional */
-	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, args->destsn, strlen(args->destsn)+1);
+	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, args->destbn, strlen(args->destbn)+1);
 
 	flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &data);
 	byte_stream_destroy(&data);
@@ -431,11 +431,11 @@ int aim_im_sendch1_ext(OscarData *od, st
  * that requires an explicit message length.  Use aim_im_sendch1_ext().
  *
  */
-int aim_im_sendch1(OscarData *od, const char *sn, guint16 flags, const char *msg)
+int aim_im_sendch1(OscarData *od, const char *bn, guint16 flags, const char *msg)
 {
 	struct aim_sendimext_args args;
 
-	args.destsn = sn;
+	args.destbn = bn;
 	args.flags = flags;
 	args.msg = msg;
 	args.msglen = strlen(msg);
@@ -451,7 +451,7 @@ int aim_im_sendch1(OscarData *od, const 
 /*
  * Subtype 0x0006 - Send a chat invitation.
  */
-int aim_im_sendch2_chatinvite(OscarData *od, const char *sn, const char *msg, guint16 exchange, const char *roomname, guint16 instance)
+int aim_im_sendch2_chatinvite(OscarData *od, const char *bn, const char *msg, guint16 exchange, const char *roomname, guint16 instance)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -465,18 +465,18 @@ int aim_im_sendch2_chatinvite(OscarData 
 	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM)))
 		return -EINVAL;
 
-	if (!sn || !msg || !roomname)
+	if (!bn || !msg || !roomname)
 		return -EINVAL;
 
 	aim_icbm_makecookie(cookie);
 
-	byte_stream_new(&bs, 1142+strlen(sn)+strlen(roomname)+strlen(msg));
+	byte_stream_new(&bs, 1142+strlen(bn)+strlen(roomname)+strlen(msg));
 
-	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, sn, strlen(sn)+1);
+	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, bn, strlen(bn)+1);
 
 	/* XXX should be uncached by an unwritten 'invite accept' handler */
 	priv = g_malloc(sizeof(struct aim_invite_priv));
-	priv->sn = g_strdup(sn);
+	priv->bn = g_strdup(bn);
 	priv->roomname = g_strdup(roomname);
 	priv->exchange = exchange;
 	priv->instance = instance;
@@ -487,7 +487,7 @@ int aim_im_sendch2_chatinvite(OscarData 
 		g_free(priv);
 
 	/* ICBM Header */
-	aim_im_puticbm(&bs, cookie, 0x0002, sn);
+	aim_im_puticbm(&bs, cookie, 0x0002, bn);
 
 	/*
 	 * TLV t(0005)
@@ -532,7 +532,7 @@ int aim_im_sendch2_chatinvite(OscarData 
  * This is also performance sensitive. (If you can believe it...)
  *
  */
-int aim_im_sendch2_icon(OscarData *od, const char *sn, const guint8 *icon, int iconlen, time_t stamp, guint16 iconsum)
+int aim_im_sendch2_icon(OscarData *od, const char *bn, const guint8 *icon, int iconlen, time_t stamp, guint16 iconsum)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -542,17 +542,17 @@ int aim_im_sendch2_icon(OscarData *od, c
 	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM)))
 		return -EINVAL;
 
-	if (!sn || !icon || (iconlen <= 0) || (iconlen >= MAXICONLEN))
+	if (!bn || !icon || (iconlen <= 0) || (iconlen >= MAXICONLEN))
 		return -EINVAL;
 
 	aim_icbm_makecookie(cookie);
 
-	byte_stream_new(&bs, 8+2+1+strlen(sn)+2+2+2+8+16+2+2+2+2+2+2+2+4+4+4+iconlen+strlen(AIM_ICONIDENT)+2+2);
+	byte_stream_new(&bs, 8+2+1+strlen(bn)+2+2+2+8+16+2+2+2+2+2+2+2+4+4+4+iconlen+strlen(AIM_ICONIDENT)+2+2);
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, cookie, 0x0002, sn);
+	aim_im_puticbm(&bs, cookie, 0x0002, bn);
 
 	/*
 	 * TLV t(0005)
@@ -623,7 +623,7 @@ int aim_im_sendch2_rtfmsg(OscarData *od,
 	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM)))
 		return -EINVAL;
 
-	if (!args || !args->destsn || !args->rtfmsg)
+	if (!args || !args->destbn || !args->rtfmsg)
 		return -EINVAL;
 
 	servdatalen = 2+2+16+2+4+1+2  +  2+2+4+4+4  +  2+4+2+strlen(args->rtfmsg)+1  +  4+4+4+strlen(rtfcap)+1;
@@ -635,7 +635,7 @@ int aim_im_sendch2_rtfmsg(OscarData *od,
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, cookie, 0x0002, args->destsn);
+	aim_im_puticbm(&bs, cookie, 0x0002, args->destbn);
 
 	/* TLV t(0005) - Encompasses everything below. */
 	byte_stream_put16(&bs, 0x0005);
@@ -708,12 +708,12 @@ aim_im_sendch2_cancel(PeerConnection *pe
 	if (conn == NULL)
 		return;
 
-	byte_stream_new(&bs, 118+strlen(peer_conn->sn));
+	byte_stream_new(&bs, 118+strlen(peer_conn->bn));
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, peer_conn->cookie, 0x0002, peer_conn->sn);
+	aim_im_puticbm(&bs, peer_conn->cookie, 0x0002, peer_conn->bn);
 
 	aim_tlvlist_add_noval(&outer_tlvlist, 0x0003);
 
@@ -757,12 +757,12 @@ aim_im_sendch2_connected(PeerConnection 
 	if (conn == NULL)
 		return;
 
-	byte_stream_new(&bs, 11+strlen(peer_conn->sn) + 4+2+8+16);
+	byte_stream_new(&bs, 11+strlen(peer_conn->bn) + 4+2+8+16);
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, peer_conn->cookie, 0x0002, peer_conn->sn);
+	aim_im_puticbm(&bs, peer_conn->cookie, 0x0002, peer_conn->bn);
 
 	byte_stream_put16(&bs, 0x0005);
 	byte_stream_put16(&bs, 0x001a);
@@ -783,7 +783,7 @@ void
  * "I want to connect through a proxy server"
  */
 void
-aim_im_sendch2_odc_requestdirect(OscarData *od, guchar *cookie, const char *sn, const guint8 *ip, guint16 port, guint16 requestnumber)
+aim_im_sendch2_odc_requestdirect(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 port, guint16 requestnumber)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -795,12 +795,12 @@ aim_im_sendch2_odc_requestdirect(OscarDa
 	if (conn == NULL)
 		return;
 
-	byte_stream_new(&bs, 246+strlen(sn));
+	byte_stream_new(&bs, 246+strlen(bn));
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, cookie, 0x0002, sn);
+	aim_im_puticbm(&bs, cookie, 0x0002, bn);
 
 	aim_tlvlist_add_noval(&outer_tlvlist, 0x0003);
 
@@ -835,7 +835,7 @@ void
  * remote user to connect to us via a proxy server.
  */
 void
-aim_im_sendch2_odc_requestproxy(OscarData *od, guchar *cookie, const char *sn, const guint8 *ip, guint16 pin, guint16 requestnumber)
+aim_im_sendch2_odc_requestproxy(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 pin, guint16 requestnumber)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -848,12 +848,12 @@ aim_im_sendch2_odc_requestproxy(OscarDat
 	if (conn == NULL)
 		return;
 
-	byte_stream_new(&bs, 246+strlen(sn));
+	byte_stream_new(&bs, 246+strlen(bn));
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, cookie, 0x0002, sn);
+	aim_im_puticbm(&bs, cookie, 0x0002, bn);
 
 	aim_tlvlist_add_noval(&outer_tlvlist, 0x0003);
 
@@ -898,7 +898,7 @@ void
  *
  */
 void
-aim_im_sendch2_sendfile_requestdirect(OscarData *od, guchar *cookie, const char *sn, const guint8 *ip, guint16 port, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles)
+aim_im_sendch2_sendfile_requestdirect(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 port, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -915,7 +915,7 @@ aim_im_sendch2_sendfile_requestdirect(Os
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, cookie, 0x0002, sn);
+	aim_im_puticbm(&bs, cookie, 0x0002, bn);
 
 	aim_tlvlist_add_noval(&outer_tlvlist, 0x0003);
 
@@ -981,7 +981,7 @@ void
  * remote user to connect to us via a proxy server.
  */
 void
-aim_im_sendch2_sendfile_requestproxy(OscarData *od, guchar *cookie, const char *sn, const guint8 *ip, guint16 pin, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles)
+aim_im_sendch2_sendfile_requestproxy(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 pin, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -999,7 +999,7 @@ aim_im_sendch2_sendfile_requestproxy(Osc
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, cookie, 0x0002, sn);
+	aim_im_puticbm(&bs, cookie, 0x0002, bn);
 
 	aim_tlvlist_add_noval(&outer_tlvlist, 0x0003);
 
@@ -1073,29 +1073,29 @@ aim_im_sendch2_sendfile_requestproxy(Osc
  * Subtype 0x0006 - Request the status message of the given ICQ user.
  *
  * @param od The oscar session.
- * @param sn The UIN of the user of whom you wish to request info.
+ * @param bn The UIN of the user of whom you wish to request info.
  * @param type The type of info you wish to request.  This should be the current
  *        state of the user, as one of the AIM_ICQ_STATE_* defines.
  * @return Return 0 if no errors, otherwise return the error number.
  */
-int aim_im_sendch2_geticqaway(OscarData *od, const char *sn, int type)
+int aim_im_sendch2_geticqaway(OscarData *od, const char *bn, int type)
 {
 	FlapConnection *conn;
 	ByteStream bs;
 	aim_snacid_t snacid;
 	guchar cookie[8];
 
-	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM)) || !sn)
+	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM)) || !bn)
 		return -EINVAL;
 
 	aim_icbm_makecookie(cookie);
 
-	byte_stream_new(&bs, 8+2+1+strlen(sn) + 4+0x5e + 4);
+	byte_stream_new(&bs, 8+2+1+strlen(bn) + 4+0x5e + 4);
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, cookie, 0x0002, sn);
+	aim_im_puticbm(&bs, cookie, 0x0002, bn);
 
 	/* TLV t(0005) - Encompasses almost everything below. */
 	byte_stream_put16(&bs, 0x0005); /* T */
@@ -1176,12 +1176,12 @@ int aim_im_sendch2_geticqaway(OscarData 
  * but thats ok, because it gives me time to try to figure out what kind of drugs the AOL people
  * were taking when they merged the two protocols.
  *
- * @param sn The destination screen name.
+ * @param bn The destination buddy name.
  * @param type The type of message.  0x0007 for authorization denied.  0x0008 for authorization granted.
  * @param message The message you want to send, it should be null terminated.
  * @return Return 0 if no errors, otherwise return the error number.
  */
-int aim_im_sendch4(OscarData *od, const char *sn, guint16 type, const char *message)
+int aim_im_sendch4(OscarData *od, const char *bn, guint16 type, const char *message)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -1191,17 +1191,17 @@ int aim_im_sendch4(OscarData *od, const 
 	if (!od || !(conn = flap_connection_findbygroup(od, 0x0002)))
 		return -EINVAL;
 
-	if (!sn || !type || !message)
+	if (!bn || !type || !message)
 		return -EINVAL;
 
-	byte_stream_new(&bs, 8+3+strlen(sn)+12+strlen(message)+1+4);
+	byte_stream_new(&bs, 8+3+strlen(bn)+12+strlen(message)+1+4);
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0);
 
 	aim_icbm_makecookie(cookie);
 
 	/* ICBM header */
-	aim_im_puticbm(&bs, cookie, 0x0004, sn);
+	aim_im_puticbm(&bs, cookie, 0x0004, bn);
 
 	/*
 	 * TLV t(0005)
@@ -1246,8 +1246,8 @@ static int outgoingim(OscarData *od, Fla
 	guchar cookie[8];
 	guint16 channel;
 	GSList *tlvlist;
-	char *sn;
-	int snlen;
+	char *bn;
+	int bnlen;
 	guint16 icbmflags = 0;
 	guint8 flag1 = 0, flag2 = 0;
 	gchar *msg = NULL;
@@ -1264,8 +1264,8 @@ static int outgoingim(OscarData *od, Fla
 		return 0;
 	}
 
-	snlen = byte_stream_get8(bs);
-	sn = byte_stream_getstr(bs, snlen);
+	bnlen = byte_stream_get8(bs);
+	bn = byte_stream_getstr(bs, bnlen);
 
 	tlvlist = aim_tlvlist_read(bs);
 
@@ -1296,9 +1296,9 @@ static int outgoingim(OscarData *od, Fla
 	}
 
 	if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-		ret = userfunc(od, conn, frame, channel, sn, msg, icbmflags, flag1, flag2);
+		ret = userfunc(od, conn, frame, channel, bn, msg, icbmflags, flag1, flag2);
 
-	g_free(sn);
+	g_free(bn);
 	g_free(msg);
 	aim_tlvlist_free(tlvlist);
 
@@ -1480,7 +1480,7 @@ static int incomingim_ch1_parsemsgs(Osca
 		msglen = byte_stream_get16(&mbs);
 		if (msglen > byte_stream_empty(&mbs))
 		{
-			purple_debug_misc("oscar", "Received an IM containing an invalid message part from %s.  They are probably trying to do something malicious.\n", userinfo->sn);
+			purple_debug_misc("oscar", "Received an IM containing an invalid message part from %s.  They are probably trying to do something malicious.\n", userinfo->bn);
 			break;
 		}
 
@@ -1588,7 +1588,7 @@ static int incomingim_ch1(OscarData *od,
 
 		if (length > byte_stream_empty(bs))
 		{
-			purple_debug_misc("oscar", "Received an IM containing an invalid message part from %s.  They are probably trying to do something malicious.\n", userinfo->sn);
+			purple_debug_misc("oscar", "Received an IM containing an invalid message part from %s.  They are probably trying to do something malicious.\n", userinfo->bn);
 			break;
 		}
 
@@ -1611,7 +1611,7 @@ static int incomingim_ch1(OscarData *od,
 			args.featureslen = byte_stream_get16(bs);
 			if (args.featureslen > byte_stream_empty(bs))
 			{
-				purple_debug_misc("oscar", "Received an IM containing an invalid message part from %s.  They are probably trying to do something malicious.\n", userinfo->sn);
+				purple_debug_misc("oscar", "Received an IM containing an invalid message part from %s.  They are probably trying to do something malicious.\n", userinfo->bn);
 				break;
 			}
 			if (args.featureslen == 0)
@@ -1686,7 +1686,7 @@ static int incomingim_ch1(OscarData *od,
 
 			if (length > byte_stream_empty(bs))
 			{
-				purple_debug_misc("oscar", "Received an IM containing an invalid message part from %s.  They are probably trying to do something malicious.\n", userinfo->sn);
+				purple_debug_misc("oscar", "Received an IM containing an invalid message part from %s.  They are probably trying to do something malicious.\n", userinfo->bn);
 				break;
 			}
 			g_free(args.extdata);
@@ -1761,7 +1761,7 @@ incomingim_ch2_buddylist(OscarData *od, 
 			bnlen = byte_stream_get16(servdata);
 			bn = byte_stream_getstr(servdata, bnlen);
 
-			purple_debug_misc("oscar", "got a buddy list from %s: group %s, buddy %s\n", userinfo->sn, gn, bn);
+			purple_debug_misc("oscar", "got a buddy list from %s: group %s, buddy %s\n", userinfo->bn, gn, bn);
 
 			g_free(bn);
 		}
@@ -2250,7 +2250,7 @@ static int incomingim(OscarData *od, Fla
 }
 
 /*
- * Subtype 0x0008 - Send a warning to sn.
+ * Subtype 0x0008 - Send a warning to bn.
  *
  * Flags:
  *  AIM_WARN_ANON  Send as an anonymous (doesn't count as much)
@@ -2258,21 +2258,21 @@ static int incomingim(OscarData *od, Fla
  * returns -1 on error (couldn't alloc packet), 0 on success.
  *
  */
-int aim_im_warn(OscarData *od, FlapConnection *conn, const char *sn, guint32 flags)
+int aim_im_warn(OscarData *od, FlapConnection *conn, const char *bn, guint32 flags)
 {
 	ByteStream bs;
 	aim_snacid_t snacid;
 
-	if (!od || !conn || !sn)
+	if (!od || !conn || !bn)
 		return -EINVAL;
 
-	byte_stream_new(&bs, strlen(sn)+3);
+	byte_stream_new(&bs, strlen(bn)+3);
 
-	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0008, 0x0000, sn, strlen(sn)+1);
+	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0008, 0x0000, bn, strlen(bn)+1);
 
 	byte_stream_put16(&bs, (flags & AIM_WARN_ANON) ? 0x0001 : 0x0000);
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
 	flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0008, 0x0000, snacid, &bs);
 
@@ -2314,7 +2314,7 @@ static int missedcall(OscarData *od, Fla
  *    AIM_TRANSFER_DENY_NOTACCEPTING -- "client is not accepting transfers"
  *
  */
-int aim_im_denytransfer(OscarData *od, const char *sn, const guchar *cookie, guint16 code)
+int aim_im_denytransfer(OscarData *od, const char *bn, const guchar *cookie, guint16 code)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -2324,15 +2324,15 @@ int aim_im_denytransfer(OscarData *od, c
 	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM)))
 		return -EINVAL;
 
-	byte_stream_new(&bs, 8+2+1+strlen(sn)+6);
+	byte_stream_new(&bs, 8+2+1+strlen(bn)+6);
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x000b, 0x0000, NULL, 0);
 
 	byte_stream_putraw(&bs, cookie, 8);
 
 	byte_stream_put16(&bs, 0x0002); /* channel */
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
 	aim_tlvlist_add_16(&tlvlist, 0x0003, code);
 	aim_tlvlist_write(&bs, &tlvlist);
@@ -2345,7 +2345,7 @@ int aim_im_denytransfer(OscarData *od, c
 	return 0;
 }
 
-static void parse_status_note_text(OscarData *od, guchar *cookie, char *sn, ByteStream *bs)
+static void parse_status_note_text(OscarData *od, guchar *cookie, char *bn, ByteStream *bs)
 {
 	struct aim_icq_info *info;
 	struct aim_icq_info *prev_info;
@@ -2499,10 +2499,10 @@ static void parse_status_note_text(Oscar
 	g_free(status_note_text);
 	g_free(stripped_status_note_text);
 
-	buddy = purple_find_buddy(account, sn);
+	buddy = purple_find_buddy(account, bn);
 	if (buddy == NULL)
 	{
-		purple_debug_misc("oscar", "clientautoresp: buddy %s was not found.\n", sn);
+		purple_debug_misc("oscar", "clientautoresp: buddy %s was not found.\n", bn);
 		g_free(status_note);
 		return;
 	}
@@ -2513,7 +2513,7 @@ static void parse_status_note_text(Oscar
 	presence = purple_buddy_get_presence(buddy);
 	status = purple_presence_get_active_status(presence);
 
-	purple_prpl_got_user_status(account, sn,
+	purple_prpl_got_user_status(account, bn,
 			purple_status_get_id(status),
 			"message", status_note, NULL);
 
@@ -2530,26 +2530,26 @@ static int clientautoresp(OscarData *od,
 	int ret = 0;
 	aim_rxcallback_t userfunc;
 	guint16 channel, reason;
-	char *sn;
+	char *bn;
 	guchar *cookie;
-	guint8 snlen;
+	guint8 bnlen;
 
 	cookie = byte_stream_getraw(bs, 8);
 	channel = byte_stream_get16(bs);
-	snlen = byte_stream_get8(bs);
-	sn = byte_stream_getstr(bs, snlen);
+	bnlen = byte_stream_get8(bs);
+	bn = byte_stream_getstr(bs, bnlen);
 	reason = byte_stream_get16(bs);
 
 	if (channel == 0x0002)
 	{
 		if (reason == 0x0003) /* channel-specific */
 			/* parse status note text */
-			parse_status_note_text(od, cookie, sn, bs);
+			parse_status_note_text(od, cookie, bn, bs);
 
 		byte_stream_get16(bs); /* Unknown */
 		byte_stream_get16(bs); /* Unknown */
 		if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-			ret = userfunc(od, conn, frame, channel, sn, reason, cookie);
+			ret = userfunc(od, conn, frame, channel, bn, reason, cookie);
 
 	} else if (channel == 0x0004) { /* ICQ message */
 		switch (reason) {
@@ -2594,20 +2594,20 @@ static int clientautoresp(OscarData *od,
 				msg = byte_stream_getraw(bs, len);
 
 				if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-					ret = userfunc(od, conn, frame, channel, sn, reason, state, msg);
+					ret = userfunc(od, conn, frame, channel, bn, reason, state, msg);
 
 				g_free(msg);
 			} break;
 
 			default: {
 				if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-					ret = userfunc(od, conn, frame, channel, sn, reason);
+					ret = userfunc(od, conn, frame, channel, bn, reason);
 			} break;
 		} /* end switch */
 	}
 
 	g_free(cookie);
-	g_free(sn);
+	g_free(bn);
 
 	return ret;
 }
@@ -2625,17 +2625,17 @@ static int msgack(OscarData *od, FlapCon
 	aim_rxcallback_t userfunc;
 	guint16 ch;
 	guchar *cookie;
-	char *sn;
+	char *bn;
 	int ret = 0;
 
 	cookie = byte_stream_getraw(bs, 8);
 	ch = byte_stream_get16(bs);
-	sn = byte_stream_getstr(bs, byte_stream_get8(bs));
+	bn = byte_stream_getstr(bs, byte_stream_get8(bs));
 
 	if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-		ret = userfunc(od, conn, frame, ch, sn);
+		ret = userfunc(od, conn, frame, ch, bn);
 
-	g_free(sn);
+	g_free(bn);
 	g_free(cookie);
 
 	return ret;
@@ -2672,7 +2672,7 @@ int aim_im_reqofflinemsgs(OscarData *od)
  * and Purple 0.60 and newer.
  *
  */
-int aim_im_sendmtn(OscarData *od, guint16 type1, const char *sn, guint16 type2)
+int aim_im_sendmtn(OscarData *od, guint16 type1, const char *bn, guint16 type2)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -2681,10 +2681,10 @@ int aim_im_sendmtn(OscarData *od, guint1
 	if (!od || !(conn = flap_connection_findbygroup(od, 0x0002)))
 		return -EINVAL;
 
-	if (!sn)
+	if (!bn)
 		return -EINVAL;
 
-	byte_stream_new(&bs, 11+strlen(sn)+2);
+	byte_stream_new(&bs, 11+strlen(bn)+2);
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0014, 0x0000, NULL, 0);
 
@@ -2703,10 +2703,10 @@ int aim_im_sendmtn(OscarData *od, guint1
 	byte_stream_put16(&bs, type1);
 
 	/*
-	 * Dest sn
+	 * Dest buddy name
 	 */
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
 	/*
 	 * Type 2 (should be 0x0000, 0x0001, or 0x0002 for mtn)
@@ -2731,20 +2731,20 @@ static int mtn_receive(OscarData *od, Fl
 {
 	int ret = 0;
 	aim_rxcallback_t userfunc;
-	char *sn;
-	guint8 snlen;
+	char *bn;
+	guint8 bnlen;
 	guint16 type1, type2;
 
 	byte_stream_advance(bs, 8); /* Unknown - All 0's */
 	type1 = byte_stream_get16(bs);
-	snlen = byte_stream_get8(bs);
-	sn = byte_stream_getstr(bs, snlen);
+	bnlen = byte_stream_get8(bs);
+	bn = byte_stream_getstr(bs, bnlen);
 	type2 = byte_stream_get16(bs);
 
 	if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-		ret = userfunc(od, conn, frame, type1, sn, type2);
+		ret = userfunc(od, conn, frame, type1, bn, type2);
 
-	g_free(sn);
+	g_free(bn);
 
 	return ret;
 }
============================================================
--- libpurple/protocols/oscar/family_locate.c	f6b5835e8b5e7ef6cb3f26166d2a88eff4582da4
+++ libpurple/protocols/oscar/family_locate.c	68cccf4e5934114db7bbd8c61a3e56fee56b7c3f
@@ -253,11 +253,11 @@ aim_locate_adduserinfo(OscarData *od, ai
 	FlapConnection *conn;
 	aim_rxcallback_t userfunc;
 
-	cur = aim_locate_finduserinfo(od, userinfo->sn);
+	cur = aim_locate_finduserinfo(od, userinfo->bn);
 
 	if (cur == NULL) {
 		cur = (aim_userinfo_t *)g_new0(aim_userinfo_t, 1);
-		cur->sn = g_strdup(userinfo->sn);
+		cur->bn = g_strdup(userinfo->bn);
 		cur->next = od->locate.userinfo;
 		od->locate.userinfo = cur;
 	}
@@ -366,35 +366,35 @@ aim_locate_adduserinfo(OscarData *od, ai
 }
 
 /**
- * Remove this screen name from our queue.  If this info was requested
+ * Remove this buddy name from our queue.  If this info was requested
  * by our info request queue, then pop the next element off of the queue.
  *
  * @param od The aim session.
- * @param sn Screen name of the info we just received.
+ * @param bn Buddy name of the info we just received.
  * @return True if the request was explicit (client requested the info),
  *         false if the request was implicit (libfaim request the info).
  */
 static int
-aim_locate_gotuserinfo(OscarData *od, FlapConnection *conn, const char *sn)
+aim_locate_gotuserinfo(OscarData *od, FlapConnection *conn, const char *bn)
 {
 	struct userinfo_node *cur, *del;
 	int was_explicit = TRUE;
 
-	while ((od->locate.requested != NULL) && (aim_sncmp(sn, od->locate.requested->sn) == 0)) {
+	while ((od->locate.requested != NULL) && (oscar_util_name_compare(bn, od->locate.requested->bn) == 0)) {
 		del = od->locate.requested;
 		od->locate.requested = del->next;
 		was_explicit = FALSE;
-		g_free(del->sn);
+		g_free(del->bn);
 		g_free(del);
 	}
 
 	cur = od->locate.requested;
 	while ((cur != NULL) && (cur->next != NULL)) {
-		if (aim_sncmp(sn, cur->next->sn) == 0) {
+		if (oscar_util_name_compare(bn, cur->next->bn) == 0) {
 			del = cur->next;
 			cur->next = del->next;
 			was_explicit = FALSE;
-			g_free(del->sn);
+			g_free(del->bn);
 			g_free(del);
 		} else
 			cur = cur->next;
@@ -404,34 +404,34 @@ void
 }
 
 void
-aim_locate_autofetch_away_message(OscarData *od, const char *sn)
+aim_locate_autofetch_away_message(OscarData *od, const char *bn)
 {
 	struct userinfo_node *cur;
 
 	/* Make sure we haven't already made an info request for this buddy */
 	for (cur = od->locate.requested; cur != NULL; cur = cur->next)
-		if (aim_sncmp(sn, cur->sn) == 0)
+		if (oscar_util_name_compare(bn, cur->bn) == 0)
 			return;
 
 	/* Add a new node to our request queue */
 	cur = (struct userinfo_node *)g_malloc(sizeof(struct userinfo_node));
-	cur->sn = g_strdup(sn);
+	cur->bn = g_strdup(bn);
 	cur->next = od->locate.requested;
 	od->locate.requested = cur;
 
-	aim_locate_getinfoshort(od, cur->sn, 0x00000002);
+	aim_locate_getinfoshort(od, cur->bn, 0x00000002);
 }
 
-aim_userinfo_t *aim_locate_finduserinfo(OscarData *od, const char *sn) {
+aim_userinfo_t *aim_locate_finduserinfo(OscarData *od, const char *bn) {
 	aim_userinfo_t *cur = NULL;
 
-	if (sn == NULL)
+	if (bn == NULL)
 		return NULL;
 
 	cur = od->locate.userinfo;
 
 	while (cur != NULL) {
-		if (aim_sncmp(cur->sn, sn) == 0)
+		if (oscar_util_name_compare(cur->bn, bn) == 0)
 			return cur;
 		cur = cur->next;
 	}
@@ -552,7 +552,7 @@ aim_info_free(aim_userinfo_t *info)
 void
 aim_info_free(aim_userinfo_t *info)
 {
-	g_free(info->sn);
+	g_free(info->bn);
 	g_free(info->iconcsum);
 	g_free(info->info);
 	g_free(info->info_encoding);
@@ -572,7 +572,7 @@ aim_info_extract(OscarData *od, ByteStre
 aim_info_extract(OscarData *od, ByteStream *bs, aim_userinfo_t *outinfo)
 {
 	int curtlv, tlvcnt;
-	guint8 snlen;
+	guint8 bnlen;
 
 	if (!bs || !outinfo)
 		return -EINVAL;
@@ -581,11 +581,11 @@ aim_info_extract(OscarData *od, ByteStre
 	memset(outinfo, 0x00, sizeof(aim_userinfo_t));
 
 	/*
-	 * Screen name.  Stored as an unterminated string prepended with a
+	 * Username.  Stored as an unterminated string prepended with a
 	 * byte containing its length.
 	 */
-	snlen = byte_stream_get8(bs);
-	outinfo->sn = byte_stream_getstr(bs, snlen);
+	bnlen = byte_stream_get8(bs);
+	outinfo->bn = byte_stream_getstr(bs, bnlen);
 
 	/*
 	 * Warning Level.  Stored as an unsigned short.
@@ -881,7 +881,7 @@ aim_info_extract(OscarData *od, ByteStre
 			 */
 #ifdef LOG_UNKNOWN_TLV
 			purple_debug_misc("oscar", "userinfo: **warning: unexpected TLV:\n");
-			purple_debug_misc("oscar", "userinfo:   sn    =%s\n", outinfo->sn);
+			purple_debug_misc("oscar", "userinfo:   bn    =%s\n", outinfo->bn);
 			dumptlv(od, type, bs, length);
 #endif
 		}
@@ -906,8 +906,8 @@ aim_putuserinfo(ByteStream *bs, aim_user
 	if (!bs || !info)
 		return -EINVAL;
 
-	byte_stream_put8(bs, strlen(info->sn));
-	byte_stream_putstr(bs, info->sn);
+	byte_stream_put8(bs, strlen(info->bn));
+	byte_stream_putstr(bs, info->bn);
 
 	byte_stream_put16(bs, info->warnlevel);
 
@@ -922,7 +922,7 @@ aim_putuserinfo(ByteStream *bs, aim_user
 
 /* XXX - So, ICQ_OSCAR_SUPPORT is never defined anywhere... */
 #ifdef ICQ_OSCAR_SUPPORT
-	if (atoi(info->sn) != 0) {
+	if (atoi(info->bn) != 0) {
 		if (info->present & AIM_USERINFO_PRESENT_ICQEXTSTATUS)
 			aim_tlvlist_add_16(&tlvlist, 0x0006, info->icqinfo.status);
 		if (info->present & AIM_USERINFO_PRESENT_ICQIPADDR)
@@ -953,35 +953,35 @@ error(OscarData *od, FlapConnection *con
 	aim_rxcallback_t userfunc;
 	aim_snac_t *snac2;
 	guint16 reason;
-	char *sn;
+	char *bn;
 	int was_explicit;
 
 	if (!(snac2 = aim_remsnac(od, snac->id))) {
-		purple_debug_misc("oscar", "faim: locate.c, error(): received response from unknown request!\n");
+		purple_debug_misc("oscar", "locate error: received response from unknown request!\n");
 		return 0;
 	}
 
 	if ((snac2->family != SNAC_FAMILY_LOCATE) && (snac2->type != 0x0015)) {
-		purple_debug_misc("oscar", "faim: locate.c, error(): received response from invalid request! %d\n", snac2->family);
+		purple_debug_misc("oscar", "locate error: received response from invalid request! %d\n", snac2->family);
 		return 0;
 	}
 
-	if (!(sn = snac2->data)) {
-		purple_debug_misc("oscar", "faim: locate.c, error(): received response from request without a screen name!\n");
+	if (!(bn = snac2->data)) {
+		purple_debug_misc("oscar", "locate error: received response from request without a buddy name!\n");
 		return 0;
 	}
 
 	reason = byte_stream_get16(bs);
 
 	/*
-	 * Remove this screen name from our queue.  If the client requested
+	 * Remove this buddy name from our queue.  If the client requested
 	 * this buddy's info explicitly, then notify them that we do not have
 	 * info for this buddy.
 	 */
-	was_explicit = aim_locate_gotuserinfo(od, conn, sn);
+	was_explicit = aim_locate_gotuserinfo(od, conn, bn);
 	if (was_explicit == TRUE)
 		if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
-			ret = userfunc(od, conn, frame, reason, sn);
+			ret = userfunc(od, conn, frame, reason, bn);
 
 	if (snac2)
 		g_free(snac2->data);
@@ -1157,29 +1157,29 @@ aim_locate_setcaps(OscarData *od, guint3
 /*
  * Subtype 0x0005 - Request info of another AIM user.
  *
- * @param sn The screenname whose info you wish to request.
+ * @param bn The buddy name whose info you wish to request.
  * @param infotype The type of info you wish to request.
  *        0x0001 - Info/profile
  *        0x0003 - Away message
  *        0x0004 - Capabilities
  */
 int
-aim_locate_getinfo(OscarData *od, const char *sn, guint16 infotype)
+aim_locate_getinfo(OscarData *od, const char *bn, guint16 infotype)
 {
 	FlapConnection *conn;
 	ByteStream bs;
 	aim_snacid_t snacid;
 
-	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_LOCATE)) || !sn)
+	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_LOCATE)) || !bn)
 		return -EINVAL;
 
-	byte_stream_new(&bs, 2+1+strlen(sn));
+	byte_stream_new(&bs, 2+1+strlen(bn));
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x0005, 0x0000, NULL, 0);
 
 	byte_stream_put16(&bs, infotype);
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
 	flap_connection_send_snac(od, conn, SNAC_FAMILY_LOCATE, 0x0005, 0x0000, snacid, &bs);
 
@@ -1229,18 +1229,18 @@ userinfo(OscarData *od, FlapConnection *
 	aim_tlvlist_free(tlvlist);
 
 	aim_locate_adduserinfo(od, userinfo);
-	userinfo2 = aim_locate_finduserinfo(od, userinfo->sn);
+	userinfo2 = aim_locate_finduserinfo(od, userinfo->bn);
 	aim_info_free(userinfo);
 	g_free(userinfo);
 
 	/*
-	 * Remove this screen name from our queue.  If the client requested
+	 * Remove this buddy name from our queue.  If the client requested
 	 * this buddy's info explicitly, then notify them that we have info
 	 * for this buddy.
 	 */
 	if (userinfo2 != NULL)
 	{
-		was_explicit = aim_locate_gotuserinfo(od, conn, userinfo2->sn);
+		was_explicit = aim_locate_gotuserinfo(od, conn, userinfo2->bn);
 		if (was_explicit == TRUE)
 			if ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))
 				ret = userfunc(od, conn, frame, userinfo2);
@@ -1307,7 +1307,7 @@ int aim_locate_setdirinfo(OscarData *od,
 /*
  * Subtype 0x000b - Huh? What is this?
  */
-int aim_locate_000b(OscarData *od, const char *sn)
+int aim_locate_000b(OscarData *od, const char *bn)
 {
 	FlapConnection *conn;
 	ByteStream bs;
@@ -1315,15 +1315,15 @@ int aim_locate_000b(OscarData *od, const
 
 		return -EINVAL;
 
-	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_LOCATE)) || !sn)
+	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_LOCATE)) || !bn)
 		return -EINVAL;
 
-	byte_stream_new(&bs, 1+strlen(sn));
+	byte_stream_new(&bs, 1+strlen(bn));
 
 	snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x000b, 0x0000, NULL, 0);
 
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
 	flap_connection_send_snac(od, conn, SNAC_FAMILY_LOCATE, 0x000b, 0x0000, snacid, &bs);
 
@@ -1380,7 +1380,7 @@ aim_locate_setinterests(OscarData *od, c
  * Subtype 0x0015 - Request the info of a user using the short method.  This is
  * what iChat uses.  It normally is VERY leniently rate limited.
  *
- * @param sn The screen name whose info you wish to request.
+ * @param bn The buddy name whose info you wish to request.
  * @param flags The bitmask which specifies the type of info you wish to request.
  *        0x00000001 - Info/profile.
  *        0x00000002 - Away message.
@@ -1389,21 +1389,21 @@ int
  * @return Return 0 if no errors, otherwise return the error number.
  */
 int
-aim_locate_getinfoshort(OscarData *od, const char *sn, guint32 flags)
+aim_locate_getinfoshort(OscarData *od, const char *bn, guint32 flags)
 {
 	FlapConnection *conn;
 	ByteStream bs;
 	aim_snacid_t snacid;
 
-	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_LOCATE)) || !sn)
+	if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_LOCATE)) || !bn)
 		return -EINVAL;
 
-	byte_stream_new(&bs, 4 + 1 + strlen(sn));
+	byte_stream_new(&bs, 4 + 1 + strlen(bn));
 	byte_stream_put32(&bs, flags);
-	byte_stream_put8(&bs, strlen(sn));
-	byte_stream_putstr(&bs, sn);
+	byte_stream_put8(&bs, strlen(bn));
+	byte_stream_putstr(&bs, bn);
 
-	snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x0015, 0x0000, sn, strlen(sn)+1);
+	snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x0015, 0x0000, bn, strlen(bn)+1);
 	flap_connection_send_snac_with_priority(od, conn, SNAC_FAMILY_LOCATE, 0x0015, 0x0000, snacid, &bs, FALSE);
 
 	byte_stream_destroy(&bs);
============================================================
--- libpurple/protocols/oscar/family_odir.c	a98b2b5f0e29dc0492e8f149495210862690641c
+++ libpurple/protocols/oscar/family_odir.c	9bb8062a8c14d3eb63d28c7892ceded71a53a19e
@@ -31,7 +31,7 @@
 /**
  * Subtype 0x0002 - Submit a User Search Request
  *
- * Search for an AIM screen name based on their email address.
+ * Search for an AIM buddy based on their email address.
  *
  * @param od The oscar session.
  * @param region Should be "us-ascii" unless you know what you're doing.
@@ -70,7 +70,7 @@ int aim_odir_email(OscarData *od, const 
 /**
  * Subtype 0x0002 - Submit a User Search Request
  *
- * Search for an AIM screen name based on various info
+ * Search for an AIM buddy based on various info
  * about the person.
  *
  * @param od The oscar session.
@@ -202,7 +202,7 @@ static int parseresults(OscarData *od, F
 		new->country = aim_tlv_getstr(tlvlist, 0x0006, 1);
 		new->state = aim_tlv_getstr(tlvlist, 0x0007, 1);
 		new->city = aim_tlv_getstr(tlvlist, 0x0008, 1);
-		new->sn = aim_tlv_getstr(tlvlist, 0x0009, 1);
+		new->bn = aim_tlv_getstr(tlvlist, 0x0009, 1);
 		new->interest = aim_tlv_getstr(tlvlist, 0x000b, 1);
 		new->nick = aim_tlv_getstr(tlvlist, 0x000c, 1);
 		new->zip = aim_tlv_getstr(tlvlist, 0x000d, 1);
@@ -228,7 +228,7 @@ static int parseresults(OscarData *od, F
 		g_free(del->country);
 		g_free(del->state);
 		g_free(del->city);
-		g_free(del->sn);
+		g_free(del->bn);
 		g_free(del->interest);
 		g_free(del->nick);
 		g_free(del->zip);
============================================================
--- libpurple/protocols/oscar/odc.c	167f30ddb54d79bdc9c59e6ad644ac136d2c60fa
+++ libpurple/protocols/oscar/odc.c	97737a449c40d001234b5419bb0f470dee9c4c6a
@@ -62,7 +62,7 @@ peer_odc_close(PeerConnection *conn)
 		PurpleConversation *conv;
 
 		account = purple_connection_get_account(conn->od->gc);
-		conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->sn);
+		conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->bn);
 		purple_conversation_write(conv, NULL, tmp, PURPLE_MESSAGE_SYSTEM, time(NULL));
 		g_free(tmp);
 	}
@@ -90,11 +90,11 @@ peer_odc_send(PeerConnection *conn, OdcF
 
 	purple_debug_info("oscar", "Outgoing ODC frame to %s with "
 		"type=0x%04x, flags=0x%04x, payload length=%u\n",
-		conn->sn, frame->type, frame->flags, frame->payload.len);
+		conn->bn, frame->type, frame->flags, frame->payload.len);
 
 	account = purple_connection_get_account(conn->od->gc);
 	username = purple_account_get_username(account);
-	memcpy(frame->sn, username, strlen(username));
+	memcpy(frame->bn, username, strlen(username));
 	memcpy(frame->cookie, conn->cookie, 8);
 
 	length = 76;
@@ -116,7 +116,7 @@ peer_odc_send(PeerConnection *conn, OdcF
 	byte_stream_put16(&bs, frame->flags);
 	byte_stream_put16(&bs, 0x0000);
 	byte_stream_put16(&bs, 0x0000);
-	byte_stream_putraw(&bs, frame->sn, 32);
+	byte_stream_putraw(&bs, frame->bn, 32);
 	byte_stream_putraw(&bs, frame->payload.data, frame->payload.len);
 
 	peer_connection_send(conn, &bs);
@@ -366,7 +366,7 @@ peer_odc_handle_payload(PeerConnection *
 		g_datalist_clear(&attributes);
 
 		/* Append the message up to the tag */
-		utf8 = purple_plugin_oscar_decode_im_part(account, conn->sn,
+		utf8 = purple_plugin_oscar_decode_im_part(account, conn->bn,
 				encoding, 0x0000, tmp, start - tmp);
 		if (utf8 != NULL) {
 			g_string_append(newmsg, utf8);
@@ -386,7 +386,7 @@ peer_odc_handle_payload(PeerConnection *
 	/* Append any remaining message data */
 	if (tmp <= msgend)
 	{
-		utf8 = purple_plugin_oscar_decode_im_part(account, conn->sn,
+		utf8 = purple_plugin_oscar_decode_im_part(account, conn->bn,
 				encoding, 0x0000, tmp, msgend - tmp);
 		if (utf8 != NULL) {
 			g_string_append(newmsg, utf8);
@@ -400,7 +400,7 @@ peer_odc_handle_payload(PeerConnection *
 		imflags |= PURPLE_MESSAGE_IMAGES;
 	if (autoreply)
 		imflags |= PURPLE_MESSAGE_AUTO_RESP;
-	serv_got_im(gc, conn->sn, newmsg->str, imflags, time(NULL));
+	serv_got_im(gc, conn->bn, newmsg->str, imflags, time(NULL));
 	g_string_free(newmsg, TRUE);
 
 	/* unref any images we allocated */
@@ -503,11 +503,11 @@ peer_odc_recv_frame(PeerConnection *conn
 	byte_stream_advance(bs, 4);
 	frame->flags = byte_stream_get16(bs);
 	byte_stream_advance(bs, 4);
-	byte_stream_getrawbuf(bs, frame->sn, 32);
+	byte_stream_getrawbuf(bs, frame->bn, 32);
 
 	purple_debug_info("oscar", "Incoming ODC frame from %s with "
 			"type=0x%04x, flags=0x%04x, payload length=%u\n",
-			frame->sn, frame->type, frame->flags, frame->payload.len);
+			frame->bn, frame->type, frame->flags, frame->payload.len);
 
 	if (!conn->ready)
 	{
@@ -558,7 +558,7 @@ peer_odc_recv_frame(PeerConnection *conn
 
 		/* Tell the local user that we are connected */
 		account = purple_connection_get_account(gc);
-		conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->sn);
+		conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->bn);
 		purple_conversation_write(conv, NULL, _("Direct IM established"),
 				PURPLE_MESSAGE_SYSTEM, time(NULL));
 	}
@@ -576,16 +576,16 @@ peer_odc_recv_frame(PeerConnection *conn
 		/* I had to leave this. It's just too funny. It reminds me of my sister. */
 		purple_debug_info("oscar", "ohmigod! %s has started typing "
 			"(DirectIM). He's going to send you a message! "
-			"*squeal*\n", conn->sn);
-		serv_got_typing(gc, conn->sn, 0, PURPLE_TYPING);
+			"*squeal*\n", conn->bn);
+		serv_got_typing(gc, conn->bn, 0, PURPLE_TYPING);
 	}
 	else if (frame->flags & 0x0004)
 	{
-		serv_got_typing(gc, conn->sn, 0, PURPLE_TYPED);
+		serv_got_typing(gc, conn->bn, 0, PURPLE_TYPED);
 	}
 	else
 	{
-		serv_got_typing_stopped(gc, conn->sn);
+		serv_got_typing_stopped(gc, conn->bn);
 	}
 
 	if (frame->payload.len > 0)
@@ -598,12 +598,12 @@ peer_odc_recv_frame(PeerConnection *conn
 
 			size1 = purple_str_size_to_units(frame->payload.len);
 			size2 = purple_str_size_to_units(DIRECTIM_MAX_FILESIZE);
-			tmp = g_strdup_printf(_("%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"), conn->sn, size1, size2);
+			tmp = g_strdup_printf(_("%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"), conn->bn, size1, size2);
 			g_free(size1);
 			g_free(size2);
 
 			account = purple_connection_get_account(conn->od->gc);
-			conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->sn);
+			conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->bn);
 			purple_conversation_write(conv, NULL, tmp, PURPLE_MESSAGE_SYSTEM, time(NULL));
 			g_free(tmp);
 
============================================================
--- libpurple/protocols/oscar/oft.c	ca580f17b1337700bfc547020a885f0286f8171d
+++ libpurple/protocols/oscar/oft.c	d95852f3ed01a8df958bc387bc1d46e5cf181232
@@ -544,7 +544,7 @@ peer_oft_recv_frame(PeerConnection *conn
 	frame.name = byte_stream_getraw(bs, frame.name_length);
 
 	purple_debug_info("oscar", "Incoming OFT frame from %s with "
-			"type=0x%04x\n", conn->sn, frame.type);
+			"type=0x%04x\n", conn->bn, frame.type);
 
 	/* TODOFT: peer_oft_dirconvert_fromstupid(frame->name); */
 
============================================================
--- libpurple/protocols/oscar/oscar.c	d025af51303b8cfa55a292ee96fda7fcae40264d
+++ libpurple/protocols/oscar/oscar.c	5332b8fb816106bb567e4521022f126a6979a85a
@@ -204,7 +204,7 @@ static void oscar_set_extendedstatus(Pur
 void oscar_set_info(PurpleConnection *gc, const char *info);
 static void oscar_set_info_and_status(PurpleAccount *account, gboolean setinfo, const char *rawinfo, gboolean setstatus, PurpleStatus *status);
 static void oscar_set_extendedstatus(PurpleConnection *gc);
-static void oscar_format_screenname(PurpleConnection *gc, const char *nick);
+static void oscar_format_username(PurpleConnection *gc, const char *nick);
 static gboolean purple_ssi_rerequestdata(gpointer data);
 
 static void oscar_free_name_data(struct name_data *data) {
@@ -362,7 +362,7 @@ oscar_utf8_try_convert(PurpleAccount *ac
 	const char *charset = NULL;
 	char *ret = NULL;
 
-	if(aim_snvalid_icq(purple_account_get_username(account)))
+	if(oscar_util_valid_name_icq(purple_account_get_username(account)))
 		charset = purple_account_get_string(account, "encoding", NULL);
 
 	if(charset && *charset)
@@ -414,7 +414,7 @@ gchar *
  * charsetstr1 is always set to what the correct encoding should be.
  */
 gchar *
-purple_plugin_oscar_decode_im_part(PurpleAccount *account, const char *sourcesn, guint16 charset, guint16 charsubset, const gchar *data, gsize datalen)
+purple_plugin_oscar_decode_im_part(PurpleAccount *account, const char *sourcebn, guint16 charset, guint16 charsubset, const gchar *data, gsize datalen)
 {
 	gchar *ret = NULL;
 	const gchar *charsetstr1, *charsetstr2;
@@ -428,7 +428,7 @@ purple_plugin_oscar_decode_im_part(Purpl
 		charsetstr1 = "UTF-16BE";
 		charsetstr2 = "UTF-8";
 	} else if (charset == AIM_CHARSET_CUSTOM) {
-		if ((sourcesn != NULL) && aim_snvalid_icq(sourcesn))
+		if ((sourcebn != NULL) && oscar_util_valid_name_icq(sourcebn))
 			charsetstr1 = purple_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
 		else
 			charsetstr1 = "ISO-8859-1";
@@ -458,7 +458,7 @@ purple_plugin_oscar_decode_im_part(Purpl
 		str[datalen] = '\0';
 		salvage = purple_utf8_salvage(str);
 		tmp = g_strdup_printf(_("(There was an error receiving this message.  Either you and %s have different encodings selected, or %s has a buggy client.)"),
-					  sourcesn, sourcesn);
+					  sourcebn, sourcebn);
 		ret = g_strdup_printf("%s %s", salvage, tmp);
 		g_free(tmp);
 		g_free(str);
@@ -473,7 +473,7 @@ purple_plugin_oscar_convert_to_best_enco
  */
 static void
 purple_plugin_oscar_convert_to_best_encoding(PurpleConnection *gc,
-				const char *destsn, const gchar *from,
+				const char *destbn, const gchar *from,
 				gchar **msg, int *msglen_int,
 				guint16 *charset, guint16 *charsubset)
 {
@@ -499,13 +499,13 @@ purple_plugin_oscar_convert_to_best_enco
 	 * capability, and they are online, then attempt to send
 	 * as UTF-16BE.
 	 */
-	if ((destsn != NULL) && aim_snvalid_icq(destsn))
-		userinfo = aim_locate_finduserinfo(od, destsn);
+	if ((destbn != NULL) && oscar_util_valid_name_icq(destbn))
+		userinfo = aim_locate_finduserinfo(od, destbn);
 
 	if ((userinfo != NULL) && (userinfo->capabilities & OSCAR_CAPABILITY_UNICODE))
 	{
 		PurpleBuddy *b;
-		b = purple_find_buddy(account, destsn);
+		b = purple_find_buddy(account, destbn);
 		if ((b != NULL) && (PURPLE_BUDDY_IS_ONLINE(b)))
 		{
 			*msg = g_convert(from, -1, "UTF-16BE", "UTF-8", NULL, &msglen, &err);
@@ -529,7 +529,7 @@ purple_plugin_oscar_convert_to_best_enco
 	 * ICQ then attempt to send as the user specified character encoding.
 	 */
 	charsetstr = "ISO-8859-1";
-	if ((destsn != NULL) && aim_snvalid_icq(destsn))
+	if ((destbn != NULL) && oscar_util_valid_name_icq(destbn))
 		charsetstr = purple_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
 
 	/*
@@ -819,7 +819,7 @@ static void oscar_user_info_append_statu
 		return;
 
 	if (b == NULL)
-		b = purple_find_buddy(purple_connection_get_account(gc), userinfo->sn);
+		b = purple_find_buddy(purple_connection_get_account(gc), userinfo->bn);
 
 	if (b) {
 		presence = purple_buddy_get_presence(b);
@@ -886,7 +886,7 @@ static void oscar_user_info_append_statu
 
 	if (b) {
 		if (purple_presence_is_online(presence)) {
-			if (aim_snvalid_icq(bname) || is_away || !message || !(*message)) {
+			if (oscar_util_valid_name_icq(bname) || is_away || !message || !(*message)) {
 				/* Append the status name for online ICQ statuses, away AIM statuses, and for all buddies with no message.
 				 * If the status name and the message are the same, only show one. */
 				const char *status_name = purple_status_get_name(status);
@@ -946,7 +946,7 @@ static void oscar_user_info_append_extra
 		userinfo = aim_locate_finduserinfo(od, bname);
 
 	if (b == NULL)
-		b = purple_find_buddy(account, userinfo->sn);
+		b = purple_find_buddy(account, userinfo->bn);
 
 	if (b != NULL) {
 		g = purple_buddy_get_group(b);
@@ -956,7 +956,7 @@ static void oscar_user_info_append_extra
 	}
 
 	if (userinfo != NULL)
-		bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, userinfo->sn));
+		bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, userinfo->bn));
 
 	if ((bi != NULL) && (bi->ipaddr != 0)) {
 		tmp =  g_strdup_printf("%hhu.%hhu.%hhu.%hhu",
@@ -1213,10 +1213,10 @@ flap_connection_established_admin(OscarD
 		od->chpass = FALSE;
 	}
 	if (od->setnick) {
-		purple_debug_info("oscar", "formatting screen name\n");
-		aim_admin_setnick(od, conn, od->newsn);
-		g_free(od->newsn);
-		od->newsn = NULL;
+		purple_debug_info("oscar", "formatting username\n");
+		aim_admin_setnick(od, conn, od->newformatting);
+		g_free(od->newformatting);
+		od->newformatting = NULL;
 		od->setnick = FALSE;
 	}
 	if (od->conf) {
@@ -1420,7 +1420,7 @@ oscar_login(PurpleAccount *account)
 
 	purple_debug_misc("oscar", "oscar_login: gc = %p\n", gc);
 
-	if (!aim_snvalid(purple_account_get_username(account))) {
+	if (!oscar_util_valid_name(purple_account_get_username(account))) {
 		gchar *buf;
 		buf = g_strdup_printf(_("Unable to login: Could not sign on as %s because the username is invalid.  Usernames must be a valid email address, or start with a letter and contain only letters, numbers and spaces, or contain only numbers."), purple_account_get_username(account));
 		purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_INVALID_SETTINGS, buf);
@@ -1428,7 +1428,7 @@ oscar_login(PurpleAccount *account)
 		return;
 	}
 
-	if (aim_snvalid_icq((purple_account_get_username(account)))) {
+	if (oscar_util_valid_name_icq((purple_account_get_username(account)))) {
 		od->icq = TRUE;
 	} else {
 		gc->flags |= PURPLE_CONNECTION_HTML;
@@ -1501,13 +1501,13 @@ purple_parse_auth_resp(OscarData *od, Fl
 	va_end(ap);
 
 	purple_debug_info("oscar",
-			   "inside auth_resp (Username: %s)\n", info->sn);
+			   "inside auth_resp (Username: %s)\n", info->bn);
 
 	if (info->errorcode || !info->bosip || !info->cookielen || !info->cookie) {
 		char buf[256];
 		switch (info->errorcode) {
 		case 0x01:
-			/* Unregistered screen name */
+			/* Unregistered username */
 			purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_INVALID_USERNAME, _("Invalid username."));
 			break;
 		case 0x05:
@@ -1526,7 +1526,7 @@ purple_parse_auth_resp(OscarData *od, Fl
 			purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, _("The AOL Instant Messenger service is temporarily unavailable."));
 			break;
 		case 0x18:
-			/* screen name connecting too frequently */
+			/* username connecting too frequently */
 			purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, _("You have been connecting and disconnecting too frequently. Wait ten minutes and try again. If you continue to try, you will need to wait even longer."));
 			break;
 		case 0x1c:
@@ -1917,24 +1917,24 @@ static gboolean purple_requesticqstatusn
 
 	while (od->statusnotes_queue != NULL)
 	{
-		char *sn;
+		char *bn;
 		struct aim_ssi_item *ssi_item;
 		aim_tlv_t *note_hash;
 
-		sn = od->statusnotes_queue->data;
+		bn = od->statusnotes_queue->data;
 
 		ssi_item = aim_ssi_itemlist_finditem(od->ssi.local,
-											 NULL, sn, AIM_SSI_TYPE_BUDDY);
+											 NULL, bn, AIM_SSI_TYPE_BUDDY);
 		if (ssi_item != NULL)
 		{
 			note_hash = aim_tlv_gettlv(ssi_item->data, 0x015c, 1);
 			if (note_hash != NULL) {
-				aim_icq_getstatusnote(od, sn, note_hash->value, note_hash->length);
+				aim_icq_getstatusnote(od, bn, note_hash->value, note_hash->length);
 			}
 		}
 
-		od->statusnotes_queue = g_slist_remove(od->statusnotes_queue, sn);
-		g_free(sn);
+		od->statusnotes_queue = g_slist_remove(od->statusnotes_queue, bn);
+		g_free(bn);
 	}
 
 	od->statusnotes_queue_timer = 0;
@@ -1962,7 +1962,7 @@ static int purple_parse_oncoming(OscarDa
 	va_end(ap);
 
 	g_return_val_if_fail(info != NULL, 1);
-	g_return_val_if_fail(info->sn != NULL, 1);
+	g_return_val_if_fail(info->bn != NULL, 1);
 
 	if (info->present & AIM_USERINFO_PRESENT_FLAGS) {
 		if (info->flags & AIM_FLAG_AWAY)
@@ -1976,7 +1976,7 @@ static int purple_parse_oncoming(OscarDa
 		}
 	}
 
-	if (aim_snvalid_icq(info->sn)) {
+	if (oscar_util_valid_name_icq(info->bn)) {
 		if (type & AIM_ICQ_STATE_CHAT)
 			status_id = OSCAR_STATUS_ID_FREE4CHAT;
 		else if (type & AIM_ICQ_STATE_DND)
@@ -2002,9 +2002,9 @@ static int purple_parse_oncoming(OscarDa
 
 	if (info->flags & AIM_FLAG_WIRELESS)
 	{
-		purple_prpl_got_user_status(account, info->sn, OSCAR_STATUS_ID_MOBILE, NULL);
+		purple_prpl_got_user_status(account, info->bn, OSCAR_STATUS_ID_MOBILE, NULL);
 	} else {
-		purple_prpl_got_user_status_deactive(account, info->sn, OSCAR_STATUS_ID_MOBILE);
+		purple_prpl_got_user_status_deactive(account, info->bn, OSCAR_STATUS_ID_MOBILE);
 	}
 
 	if (strcmp(status_id, OSCAR_STATUS_ID_AVAILABLE) == 0)
@@ -2029,7 +2029,7 @@ static int purple_parse_oncoming(OscarDa
 		if (tmp2 == NULL && itmsurl != NULL)
 			tmp2 = "";
 
-		purple_prpl_got_user_status(account, info->sn, status_id,
+		purple_prpl_got_user_status(account, info->bn, status_id,
 				"message", tmp2, "itmsurl", itmsurl, NULL);
 		g_free(tmp);
 
@@ -2038,7 +2038,7 @@ static int purple_parse_oncoming(OscarDa
 	}
 	else
 	{
-		PurpleBuddy *b = purple_find_buddy(account, info->sn);
+		PurpleBuddy *b = purple_find_buddy(account, info->bn);
 		PurplePresence *presence = purple_buddy_get_presence(b);
 		PurpleStatus *old_status = purple_presence_get_active_status(presence);
 		PurpleStatus *new_status = purple_presence_get_status(presence, status_id);
@@ -2048,7 +2048,7 @@ static int purple_parse_oncoming(OscarDa
 		 * attributes on the status prematurely. purple_got_infoblock() will update the message as needed.
 		 */
 		if (old_status != new_status)
-			purple_prpl_got_user_status(account, info->sn, status_id, NULL);
+			purple_prpl_got_user_status(account, info->bn, status_id, NULL);
 	}
 
 	/* Login time stuff */
@@ -2056,7 +2056,7 @@ static int purple_parse_oncoming(OscarDa
 		signon = info->onlinesince;
 	else if (info->present & AIM_USERINFO_PRESENT_SESSIONLEN)
 		signon = time(NULL) - info->sessionlen;
-	purple_prpl_got_user_login_time(account, info->sn, signon);
+	purple_prpl_got_user_login_time(account, info->bn, signon);
 
 	/* Idle time stuff */
 	/* info->idletime is the number of minutes that this user has been idle */
@@ -2064,15 +2064,15 @@ static int purple_parse_oncoming(OscarDa
 		time_idle = time(NULL) - info->idletime * 60;
 
 	if (time_idle > 0)
-		purple_prpl_got_user_idle(account, info->sn, TRUE, time_idle);
+		purple_prpl_got_user_idle(account, info->bn, TRUE, time_idle);
 	else
-		purple_prpl_got_user_idle(account, info->sn, FALSE, 0);
+		purple_prpl_got_user_idle(account, info->bn, FALSE, 0);
 
 	/* Server stored icon stuff */
-	bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, info->sn));
+	bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, info->bn));
 	if (!bi) {
 		bi = g_new0(struct buddyinfo, 1);
-		g_hash_table_insert(od->buddyinfo, g_strdup(purple_normalize(account, info->sn)), bi);
+		g_hash_table_insert(od->buddyinfo, g_strdup(purple_normalize(account, info->bn)), bi);
 	}
 	bi->typingnot = FALSE;
 	bi->ico_informed = FALSE;
@@ -2084,20 +2084,20 @@ static int purple_parse_oncoming(OscarDa
 		PurpleBuddy *b = NULL;
 
 		b16 = purple_base16_encode(info->iconcsum, info->iconcsumlen);
-		b = purple_find_buddy(account, info->sn);
+		b = purple_find_buddy(account, info->bn);
 		if (b != NULL)
 			saved_b16 = purple_buddy_icons_get_checksum_for_user(b);
 
 		if (!b16 || !saved_b16 || strcmp(b16, saved_b16)) {
 			/* Invalidate the old icon for this user */
-			purple_buddy_icons_set_for_user(account, info->sn, NULL, 0, NULL);
+			purple_buddy_icons_set_for_user(account, info->bn, NULL, 0, NULL);
 
 			/* Fetch the new icon (if we're not already doing so) */
-			if (g_slist_find_custom(od->requesticon, info->sn,
-					(GCompareFunc)aim_sncmp) == NULL)
+			if (g_slist_find_custom(od->requesticon, info->bn,
+					(GCompareFunc)oscar_util_name_compare) == NULL)
 			{
 				od->requesticon = g_slist_prepend(od->requesticon,
-						g_strdup(purple_normalize(account, info->sn)));
+						g_strdup(purple_normalize(account, info->bn)));
 				purple_icons_fetch(gc);
 			}
 		}
@@ -2120,7 +2120,7 @@ static int purple_parse_oncoming(OscarDa
 		aim_tlv_t *note_hash;
 
 		ssi_item = aim_ssi_itemlist_finditem(od->ssi.local,
-				NULL, info->sn, AIM_SSI_TYPE_BUDDY);
+				NULL, info->bn, AIM_SSI_TYPE_BUDDY);
 		if (ssi_item != NULL)
 		{
 			note_hash = aim_tlv_gettlv(ssi_item->data, 0x015c, 1);
@@ -2135,10 +2135,10 @@ static int purple_parse_oncoming(OscarDa
 				 * buddy.
 				 */
 				if (od->statusnotes_queue == NULL ||
-					g_slist_find_custom(od->statusnotes_queue, info->sn, (GCompareFunc)strcmp) == NULL)
+					g_slist_find_custom(od->statusnotes_queue, info->bn, (GCompareFunc)strcmp) == NULL)
 				{
 					od->statusnotes_queue = g_slist_prepend(od->statusnotes_queue,
-							g_strdup(info->sn));
+							g_strdup(info->bn));
 
 					if (od->statusnotes_queue_timer > 0)
 						purple_timeout_remove(od->statusnotes_queue_timer);
@@ -2169,9 +2169,9 @@ static int purple_parse_offgoing(OscarDa
 	info = va_arg(ap, aim_userinfo_t *);
 	va_end(ap);
 
-	purple_prpl_got_user_status(account, info->sn, OSCAR_STATUS_ID_OFFLINE, NULL);
-	purple_prpl_got_user_status_deactive(account, info->sn, OSCAR_STATUS_ID_MOBILE);
-	g_hash_table_remove(od->buddyinfo, purple_normalize(gc->account, info->sn));
+	purple_prpl_got_user_status(account, info->bn, OSCAR_STATUS_ID_OFFLINE, NULL);
+	purple_prpl_got_user_status_deactive(account, info->bn, OSCAR_STATUS_ID_MOBILE);
+	g_hash_table_remove(od->buddyinfo, purple_normalize(gc->account, info->bn));
 
 	return 1;
 }
@@ -2189,15 +2189,15 @@ static int incomingim_chan1(OscarData *o
 	GData *attribs;
 
 	purple_debug_misc("oscar", "Received IM from %s with %d parts\n",
-					userinfo->sn, args->mpmsg.numparts);
+					userinfo->bn, args->mpmsg.numparts);
 
 	if (args->mpmsg.numparts == 0)
 		return 1;
 
-	bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, userinfo->sn));
+	bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, userinfo->bn));
 	if (!bi) {
 		bi = g_new0(struct buddyinfo, 1);
-		g_hash_table_insert(od->buddyinfo, g_strdup(purple_normalize(account, userinfo->sn)), bi);
+		g_hash_table_insert(od->buddyinfo, g_strdup(purple_normalize(account, userinfo->bn)), bi);
 	}
 
 	if (args->icbmflags & AIM_IMFLAGS_AWAY)
@@ -2209,7 +2209,7 @@ static int incomingim_chan1(OscarData *o
 		bi->typingnot = FALSE;
 
 	if ((args->icbmflags & AIM_IMFLAGS_HASICON) && (args->iconlen) && (args->iconsum) && (args->iconstamp)) {
-		purple_debug_misc("oscar", "%s has an icon\n", userinfo->sn);
+		purple_debug_misc("oscar", "%s has an icon\n", userinfo->bn);
 		if ((args->iconlen != bi->ico_len) || (args->iconsum != bi->ico_csum) || (args->iconstamp != bi->ico_time)) {
 			bi->ico_need = TRUE;
 			bi->ico_len = args->iconlen;
@@ -2225,8 +2225,8 @@ static int incomingim_chan1(OscarData *o
 		size_t len = purple_imgstore_get_size(img);
 		purple_debug_info("oscar",
 				"Sending buddy icon to %s (%" G_GSIZE_FORMAT " bytes)\n",
-				userinfo->sn, len);
-		aim_im_sendch2_icon(od, userinfo->sn, data, len,
+				userinfo->bn, len);
+		aim_im_sendch2_icon(od, userinfo->bn, data, len,
 			purple_buddy_icons_get_account_icon_timestamp(account),
 			aimutil_iconsum(data, len));
 	}
@@ -2235,7 +2235,7 @@ static int incomingim_chan1(OscarData *o
 	message = g_string_new("");
 	curpart = args->mpmsg.parts;
 	while (curpart != NULL) {
-		tmp = purple_plugin_oscar_decode_im_part(account, userinfo->sn, curpart->charset,
+		tmp = purple_plugin_oscar_decode_im_part(account, userinfo->bn, curpart->charset,
 				curpart->charsubset, curpart->data, curpart->datalen);
 		if (tmp != NULL) {
 			g_string_append(message, tmp);
@@ -2255,7 +2255,7 @@ static int incomingim_chan1(OscarData *o
 	 * Note: There *may* be some clients which send messages as HTML formatted -
 	 *       they need to be special-cased somehow.
 	 */
-	if (aim_snvalid_icq(purple_account_get_username(account)) && aim_snvalid_icq(userinfo->sn)) {
+	if (oscar_util_valid_name_icq(purple_account_get_username(account)) && oscar_util_valid_name_icq(userinfo->bn)) {
 		/* being recevied by ICQ from ICQ - escape HTML so it is displayed as sent */
 		gchar *tmp2 = g_markup_escape_text(tmp, -1);
 		g_free(tmp);
@@ -2293,7 +2293,7 @@ static int incomingim_chan1(OscarData *o
 		g_datalist_clear(&attribs);
 	}
 
-	serv_got_im(gc, userinfo->sn, tmp, flags,
+	serv_got_im(gc, userinfo->bn, tmp, flags,
 			(args->icbmflags & AIM_IMFLAGS_OFFLINE) ? args->timestamp : time(NULL));
 	g_free(tmp);
 
@@ -2318,7 +2318,7 @@ incomingim_chan2(OscarData *od, FlapConn
 		return 0;
 
 	purple_debug_misc("oscar", "Incoming rendezvous message of type %u, "
-			"user %s, status %hu\n", args->type, userinfo->sn, args->status);
+			"user %s, status %hu\n", args->type, userinfo->bn, args->status);
 
 	if (args->msg != NULL)
 	{
@@ -2364,7 +2364,7 @@ incomingim_chan2(OscarData *od, FlapConn
 				g_strdup_printf("%d", args->info.chat.roominfo.exchange));
 		serv_got_chat_invite(gc,
 				     utf8name,
-				     userinfo->sn,
+				     userinfo->bn,
 				     message,
 				     components);
 	}
@@ -2374,14 +2374,14 @@ incomingim_chan2(OscarData *od, FlapConn
 	{
 		if (args->status == AIM_RENDEZVOUS_PROPOSE)
 		{
-			peer_connection_got_proposition(od, userinfo->sn, message, args);
+			peer_connection_got_proposition(od, userinfo->bn, message, args);
 		}
 		else if (args->status == AIM_RENDEZVOUS_CANCEL)
 		{
 			/* The other user canceled a peer request */
 			PeerConnection *conn;
 
-			conn = peer_connection_find_by_cookie(od, userinfo->sn, args->cookie);
+			conn = peer_connection_find_by_cookie(od, userinfo->bn, args->cookie);
 			/*
 			 * If conn is NULL it means we haven't tried to create
 			 * a connection with that user.  They may be trying to
@@ -2412,7 +2412,7 @@ incomingim_chan2(OscarData *od, FlapConn
 
 	else if (args->type & OSCAR_CAPABILITY_BUDDYICON)
 	{
-		purple_buddy_icons_set_for_user(account, userinfo->sn,
+		purple_buddy_icons_set_for_user(account, userinfo->bn,
 									  g_memdup(args->info.icon.icon, args->info.icon.length),
 									  args->info.icon.length,
 									  NULL);
@@ -2648,21 +2648,21 @@ incomingim_chan4(OscarData *od, FlapConn
 		case 0x06: { /* Someone requested authorization */
 			if (i >= 6) {
 				struct name_data *data = g_new(struct name_data, 1);
-				gchar *sn = g_strdup_printf("%u", args->uin);
+				gchar *bn = g_strdup_printf("%u", args->uin);
 				gchar *reason = NULL;
 
 				if (msg2[5] != NULL)
-					reason = purple_plugin_oscar_decode_im_part(account, sn, AIM_CHARSET_CUSTOM, 0x0000, msg2[5], strlen(msg2[5]));
+					reason = purple_plugin_oscar_decode_im_part(account, bn, AIM_CHARSET_CUSTOM, 0x0000, msg2[5], strlen(msg2[5]));
 
 				purple_debug_info("oscar",
 						   "Received an authorization request from UIN %u\n",
 						   args->uin);
 				data->gc = gc;
-				data->name = sn;
+				data->name = bn;
 				data->nick = NULL;
 
-				purple_account_request_authorization(account, sn, NULL, NULL,
-						reason, purple_find_buddy(account, sn) != NULL,
+				purple_account_request_authorization(account, bn, NULL, NULL,
+						reason, purple_find_buddy(account, bn) != NULL,
 						purple_auth_grant,
 						purple_auth_dontgrant_msgprompt, data);
 				g_free(reason);
@@ -2864,7 +2864,7 @@ static int purple_parse_misses(OscarData
 				   "You missed %hu messages from %s because they were invalid.",
 				   nummissed),
 				   nummissed,
-				   userinfo->sn);
+				   userinfo->bn);
 			break;
 		case 1: /* Message too large */
 			buf = g_strdup_printf(
@@ -2873,7 +2873,7 @@ static int purple_parse_misses(OscarData
 				   "You missed %hu messages from %s because they were too large.",
 				   nummissed),
 				   nummissed,
-				   userinfo->sn);
+				   userinfo->bn);
 			break;
 		case 2: /* Rate exceeded */
 			buf = g_strdup_printf(
@@ -2882,7 +2882,7 @@ static int purple_parse_misses(OscarData
 				   "You missed %hu messages from %s because the rate limit has been exceeded.",
 				   nummissed),
 				   nummissed,
-				   userinfo->sn);
+				   userinfo->bn);
 			break;
 		case 3: /* Evil Sender */
 			buf = g_strdup_printf(
@@ -2891,7 +2891,7 @@ static int purple_parse_misses(OscarData
 				   "You missed %hu messages from %s because his/her warning level is too high.",
 				   nummissed),
 				   nummissed,
-				   userinfo->sn);
+				   userinfo->bn);
 			break;
 		case 4: /* Evil Receiver */
 			buf = g_strdup_printf(
@@ -2900,7 +2900,7 @@ static int purple_parse_misses(OscarData
 				   "You missed %hu messages from %s because your warning level is too high.",
 				   nummissed),
 				   nummissed,
-				   userinfo->sn);
+				   userinfo->bn);
 			break;
 		default:
 			buf = g_strdup_printf(
@@ -2909,11 +2909,11 @@ static int purple_parse_misses(OscarData
 				   "You missed %hu messages from %s for an unknown reason.",
 				   nummissed),
 				   nummissed,
-				   userinfo->sn);
+				   userinfo->bn);
 			break;
 	}
 
-	if (!purple_conv_present_error(userinfo->sn, account, buf))
+	if (!purple_conv_present_error(userinfo->bn, account, buf))
 		purple_notify_error(od->gc, NULL, buf, NULL);
 	g_free(buf);
 
@@ -3059,7 +3059,7 @@ static int purple_parse_msgerr(OscarData
 	}
 #endif
 
-	/* Data is assumed to be the destination sn */
+	/* Data is assumed to be the destination bn */
 	buf = g_strdup_printf(_("Unable to send message: %s"), (reason < msgerrreasonlen) ? _(msgerrreason[reason]) : _("Unknown reason."));
 	if (!purple_conv_present_error(data, purple_connection_get_account(gc), buf)) {
 		g_free(buf);
@@ -3076,25 +3076,25 @@ static int purple_parse_mtn(OscarData *o
 	PurpleConnection *gc = od->gc;
 	va_list ap;
 	guint16 type1, type2;
-	char *sn;
+	char *bn;
 
 	va_start(ap, fr);
 	type1 = (guint16) va_arg(ap, unsigned int);
-	sn = va_arg(ap, char *);
+	bn = va_arg(ap, char *);
 	type2 = (guint16) va_arg(ap, unsigned int);
 	va_end(ap);
 
 	switch (type2) {
 		case 0x0000: { /* Text has been cleared */
-			serv_got_typing_stopped(gc, sn);
+			serv_got_typing_stopped(gc, bn);
 		} break;
 
 		case 0x0001: { /* Paused typing */
-			serv_got_typing(gc, sn, 0, PURPLE_TYPED);
+			serv_got_typing(gc, bn, 0, PURPLE_TYPED);
 		} break;
 
 		case 0x0002: { /* Typing */
-			serv_got_typing(gc, sn, 0, PURPLE_TYPING);
+			serv_got_typing(gc, bn, 0, PURPLE_TYPING);
 		} break;
 
 		default: {
@@ -3102,7 +3102,7 @@ static int purple_parse_mtn(OscarData *o
 			 * It looks like iChat sometimes sends typing notification
 			 * with type1=0x0001 and type2=0x000f.  Not sure why.
 			 */
-			purple_debug_info("oscar", "Received unknown typing notification message from %s.  Type1 is 0x%04x and type2 is 0x%04hx.\n", sn, type1, type2);
+			purple_debug_info("oscar", "Received unknown typing notification message from %s.  Type1 is 0x%04x and type2 is 0x%04hx.\n", bn, type1, type2);
 		} break;
 	}
 
@@ -3163,7 +3163,7 @@ static int purple_parse_userinfo(OscarDa
 
 	oscar_user_info_append_extra_info(gc, user_info, NULL, userinfo);
 
-	if ((userinfo->present & AIM_USERINFO_PRESENT_ONLINESINCE) && !aim_snvalid_sms(userinfo->sn)) {
+	if ((userinfo->present & AIM_USERINFO_PRESENT_ONLINESINCE) && !oscar_util_valid_name_sms(userinfo->bn)) {
 		/* An SMS contact is always online; its Online Since valid is not useful */
 		time_t t = userinfo->onlinesince;
 		oscar_user_info_add_pair(user_info, _("Online Since"), purple_date_format_full(localtime(&t)));
@@ -3197,11 +3197,11 @@ static int purple_parse_userinfo(OscarDa
 
 	purple_notify_user_info_add_section_break(user_info);
 	tmp = g_strdup_printf("<a href=\"http://profiles.aim.com/%s\">%s</a>",
-			purple_normalize(account, userinfo->sn), _("View web profile"));
+			purple_normalize(account, userinfo->bn), _("View web profile"));
 	purple_notify_user_info_add_pair(user_info, NULL, tmp);
 	g_free(tmp);
 
-	purple_notify_userinfo(gc, userinfo->sn, user_info, NULL, NULL);
+	purple_notify_userinfo(gc, userinfo->bn, user_info, NULL, NULL);
 	purple_notify_user_info_destroy(user_info);
 
 	return 1;
@@ -3223,14 +3223,14 @@ static int purple_got_infoblock(OscarDat
 	userinfo = va_arg(ap, aim_userinfo_t *);
 	va_end(ap);
 
-	b = purple_find_buddy(account, userinfo->sn);
+	b = purple_find_buddy(account, userinfo->bn);
 	if (b == NULL)
 		return 1;
 
-	if (!aim_snvalid_icq(userinfo->sn))
+	if (!oscar_util_valid_name_icq(userinfo->bn))
 	{
-		if (strcmp(purple_buddy_get_name(b), userinfo->sn) != 0)
-			serv_got_alias(gc, purple_buddy_get_name(b), userinfo->sn);
+		if (strcmp(purple_buddy_get_name(b), userinfo->bn) != 0)
+			serv_got_alias(gc, purple_buddy_get_name(b), userinfo->bn);
 		else
 			serv_got_alias(gc, purple_buddy_get_name(b), NULL);
 	}
@@ -3247,7 +3247,7 @@ static int purple_got_infoblock(OscarDat
 		                                 userinfo->away,
 		                                 userinfo->away_len);
 		g_free(charset);
-		purple_prpl_got_user_status(account, userinfo->sn,
+		purple_prpl_got_user_status(account, userinfo->bn,
 				purple_status_get_id(status),
 				"message", message, NULL);
 		g_free(message);
@@ -3368,7 +3368,7 @@ static int purple_conv_chat_join(OscarDa
 		return 1;
 
 	for (i = 0; i < count; i++)
-		purple_conv_chat_add_user(PURPLE_CONV_CHAT(c->conv), info[i].sn, NULL, PURPLE_CBFLAGS_NONE, TRUE);
+		purple_conv_chat_add_user(PURPLE_CONV_CHAT(c->conv), info[i].bn, NULL, PURPLE_CBFLAGS_NONE, TRUE);
 
 	return 1;
 }
@@ -3391,7 +3391,7 @@ static int purple_conv_chat_leave(OscarD
 		return 1;
 
 	for (i = 0; i < count; i++)
-		purple_conv_chat_remove_user(PURPLE_CONV_CHAT(c->conv), info[i].sn, NULL);
+		purple_conv_chat_remove_user(PURPLE_CONV_CHAT(c->conv), info[i].bn, NULL);
 
 	return 1;
 }
@@ -3460,7 +3460,7 @@ static int purple_conv_chat_incoming_msg
 	if (utf8 == NULL)
 		/* The conversion failed! */
 		utf8 = g_strdup(_("[Unable to display a message from this user because it contained invalid characters.]"));
-	serv_got_chat_in(gc, ccon->id, info->sn, 0, utf8, time((time_t)NULL));
+	serv_got_chat_in(gc, ccon->id, info->bn, 0, utf8, time((time_t)NULL));
 	g_free(utf8);
 
 	return 1;
@@ -3498,12 +3498,12 @@ static int purple_icon_parseicon(OscarDa
 static int purple_icon_parseicon(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
 	PurpleConnection *gc = od->gc;
 	va_list ap;
-	char *sn;
+	char *bn;
 	guint8 iconcsumtype, *iconcsum, *icon;
 	guint16 iconcsumlen, iconlen;
 
 	va_start(ap, fr);
-	sn = va_arg(ap, char *);
+	bn = va_arg(ap, char *);
 	iconcsumtype = va_arg(ap, int);
 	iconcsum = va_arg(ap, guint8 *);
 	iconcsumlen = va_arg(ap, int);
@@ -3518,7 +3518,7 @@ static int purple_icon_parseicon(OscarDa
 	if ((iconlen > 0) && (iconlen != 90)) {
 		char *b16 = purple_base16_encode(iconcsum, iconcsumlen);
 		purple_buddy_icons_set_for_user(purple_connection_get_account(gc),
-									  sn, g_memdup(icon, iconlen), iconlen, b16);
+									  bn, g_memdup(icon, iconlen), iconlen, b16);
 		g_free(b16);
 	}
 
@@ -3575,14 +3575,14 @@ static int purple_parse_msgack(OscarData
 static int purple_parse_msgack(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
 	va_list ap;
 	guint16 type;
-	char *sn;
+	char *bn;
 
 	va_start(ap, fr);
 	type = (guint16) va_arg(ap, unsigned int);
-	sn = va_arg(ap, char *);
+	bn = va_arg(ap, char *);
 	va_end(ap);
 
-	purple_debug_info("oscar", "Sent message to %s.\n", sn);
+	purple_debug_info("oscar", "Sent message to %s.\n", bn);
 
 	return 1;
 }
@@ -3642,7 +3642,7 @@ static int purple_parse_evilnotify(Oscar
 	userinfo = va_arg(ap, aim_userinfo_t *);
 	va_end(ap);
 
-	purple_prpl_got_account_warning_level(account, (userinfo && userinfo->sn) ? userinfo->sn : NULL, (newevil/10.0) + 0.5);
+	purple_prpl_got_account_warning_level(account, (userinfo && userinfo->bn) ? userinfo->bn : NULL, (newevil/10.0) + 0.5);
 #endif
 
 	return 1;
@@ -3657,7 +3657,7 @@ static int purple_selfinfo(OscarData *od
 	info = va_arg(ap, aim_userinfo_t *);
 	va_end(ap);
 
-	purple_connection_set_display_name(od->gc, info->sn);
+	purple_connection_set_display_name(od->gc, info->bn);
 
 	/*
 	 * What's with the + 0.5?
@@ -3797,10 +3797,10 @@ static int purple_bosrights(OscarData *o
 
 	if (!od->icq && strcmp(purple_account_get_username(account), purple_connection_get_display_name(gc)) != 0)
 		/*
-		 * Format the screen name for AIM accounts if it's different
+		 * Format the username for AIM accounts if it's different
 		 * than what's currently set.
 		 */
-		oscar_format_screenname(gc, account->username);
+		oscar_format_username(gc, account->username);
 
 	/* Set our available message based on the current status */
 	status = purple_account_get_active_status(account);
@@ -3834,7 +3834,7 @@ static int purple_bosrights(OscarData *o
 	/*
 	 * The "if" statement here is a pathetic attempt to not attempt to
 	 * connect to the alerts servce (aka email notification) if this
-	 * screen name does not support it.  I think mail notification
+	 * username does not support it.  I think mail notification
 	 * works for @mac.com accounts but does not work for the newer
 	 * @anythingelse.com accounts.  If that's true then this change
 	 * breaks mail notification for @mac.com accounts, but it gets rid
@@ -4167,7 +4167,7 @@ static int purple_info_change(OscarData 
 	PurpleConnection *gc = od->gc;
 	va_list ap;
 	guint16 perms, err;
-	char *url, *sn, *email;
+	char *url, *bn, *email;
 	int change;
 
 	va_start(ap, fr);
@@ -4175,15 +4175,15 @@ static int purple_info_change(OscarData 
 	perms = (guint16) va_arg(ap, unsigned int);
 	err = (guint16) va_arg(ap, unsigned int);
 	url = va_arg(ap, char *);
-	sn = va_arg(ap, char *);
+	bn = va_arg(ap, char *);
 	email = va_arg(ap, char *);
 	va_end(ap);
 
 	purple_debug_misc("oscar",
-					"account info: because of %s, perms=0x%04x, err=0x%04x, url=%s, sn=%s, email=%s\n",
+					"account info: because of %s, perms=0x%04x, err=0x%04x, url=%s, bn=%s, email=%s\n",
 					change ? "change" : "request", perms, err,
 					(url != NULL) ? url : "(null)",
-					(sn != NULL) ? sn : "(null)",
+					(bn != NULL) ? bn : "(null)",
 					(email != NULL) ? email : "(null)");
 
 	if ((err > 0) && (url != NULL)) {
@@ -4247,7 +4247,7 @@ oscar_send_typing(PurpleConnection *gc, 
 	else {
 		/* Don't send if this turkey is in our deny list */
 		GSList *list;
-		for (list=gc->account->deny; (list && aim_sncmp(name, list->data)); list=list->next);
+		for (list=gc->account->deny; (list && oscar_util_name_compare(name, list->data)); list=list->next);
 		if (!list) {
 			struct buddyinfo *bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(gc->account, name));
 			if (bi && bi->typingnot) {
@@ -4333,7 +4333,7 @@ purple_odc_send_im(PeerConnection *conn,
 
 	/* Convert the message to a good encoding */
 	purple_plugin_oscar_convert_to_best_encoding(conn->od->gc,
-			conn->sn, msg->str, &tmp, &tmplen, &charset, &charsubset);
+			conn->bn, msg->str, &tmp, &tmplen, &charset, &charsubset);
 	g_string_free(msg, TRUE);
 	msg = g_string_new_len(tmp, tmplen);
 	g_free(tmp);
@@ -4363,7 +4363,7 @@ oscar_send_im(PurpleConnection *gc, cons
 	account = purple_connection_get_account(gc);
 	ret = 0;
 
-	is_sms = aim_snvalid_sms(name);
+	is_sms = oscar_util_valid_name_sms(name);
 
 	if (od->icq && is_sms) {
 		/*
@@ -4476,17 +4476,17 @@ oscar_send_im(PurpleConnection *gc, cons
 			purple_imgstore_unref(img);
 		}
 
-		args.destsn = name;
+		args.destbn = name;
 
 		/*
 		 * If we're IMing an SMS user or an ICQ user from an ICQ account, then strip HTML.
 		 */
-		if (aim_snvalid_sms(name)) {
+		if (oscar_util_valid_name_sms(name)) {
 			/* Messaging an SMS (mobile) user */
 			tmp2 = purple_markup_strip_html(tmp1);
 			is_html = FALSE;
-		} else if (aim_snvalid_icq(purple_account_get_username(account))) {
-			if (aim_snvalid_icq(name)) {
+		} else if (oscar_util_valid_name_icq(purple_account_get_username(account))) {
+			if (oscar_util_valid_name_icq(name)) {
 				/* From ICQ to ICQ */
 				tmp2 = purple_markup_strip_html(tmp1);
 				is_html = FALSE;
@@ -4548,7 +4548,7 @@ void oscar_get_info(PurpleConnection *gc
 void oscar_get_info(PurpleConnection *gc, const char *name) {
 	OscarData *od = (OscarData *)gc->proto_data;
 
-	if (od->icq && aim_snvalid_icq(name))
+	if (od->icq && oscar_util_valid_name_icq(name))
 		aim_icq_getallinfo(od, name);
 	else
 		aim_locate_getinfoshort(od, name, 0x00000003);
@@ -4788,7 +4788,7 @@ oscar_set_status(PurpleAccount *account,
 	oscar_set_info_and_status(account, FALSE, NULL, TRUE, status);
 
 	/* Set the ICQ status for ICQ accounts only */
-	if (aim_snvalid_icq(purple_account_get_username(account)))
+	if (oscar_util_valid_name_icq(purple_account_get_username(account)))
 		oscar_set_status_icq(account, status);
 }
 
@@ -4811,7 +4811,7 @@ oscar_add_buddy(PurpleConnection *gc, Pu
 	bname = purple_buddy_get_name(buddy);
 	gname = purple_group_get_name(group);
 
-	if (!aim_snvalid(bname)) {
+	if (!oscar_util_valid_name(bname)) {
 		gchar *buf;
 		buf = g_strdup_printf(_("Could not add the buddy %s because the username is invalid.  Usernames must be a valid email address, or start with a letter and contain only letters, numbers and spaces, or contain only numbers."), bname);
 		if (!purple_conv_present_error(bname, account, buf))
@@ -5165,7 +5165,7 @@ static int purple_ssi_parselist(OscarDat
 								   "ssi: adding buddy %s to group %s to local list\n", curitem->name, gname);
 						purple_blist_add_buddy(b, NULL, g, NULL);
 					}
-					if (!aim_sncmp(curitem->name, account->username)) {
+					if (!oscar_util_name_compare(curitem->name, account->username)) {
 						char *comment = aim_ssi_getcomment(od->ssi.local, gname, curitem->name);
 						if (comment != NULL)
 						{
@@ -5213,7 +5213,7 @@ static int purple_ssi_parselist(OscarDat
 				if (curitem->name) {
 					/* if (!find_permdeny_by_name(gc->permit, curitem->name)) { AAA */
 					GSList *list;
-					for (list=account->permit; (list && aim_sncmp(curitem->name, list->data)); list=list->next);
+					for (list=account->permit; (list && oscar_util_name_compare(curitem->name, list->data)); list=list->next);
 					if (!list) {
 						purple_debug_info("oscar",
 								   "ssi: adding permit buddy %s to local list\n", curitem->name);
@@ -5225,7 +5225,7 @@ static int purple_ssi_parselist(OscarDat
 			case 0x0003: { /* Deny buddy */
 				if (curitem->name) {
 					GSList *list;
-					for (list=account->deny; (list && aim_sncmp(curitem->name, list->data)); list=list->next);
+					for (list=account->deny; (list && oscar_util_name_compare(curitem->name, list->data)); list=list->next);
 					if (!list) {
 						purple_debug_info("oscar",
 								   "ssi: adding deny buddy %s to local list\n", curitem->name);
@@ -5422,36 +5422,36 @@ static int purple_ssi_authgiven(OscarDat
 static int purple_ssi_authgiven(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
 	PurpleConnection *gc = od->gc;
 	va_list ap;
-	char *sn, *msg;
+	char *bn, *msg;
 	gchar *dialog_msg, *nombre;
 	struct name_data *data;
 	PurpleBuddy *buddy;
 
 	va_start(ap, fr);
-	sn = va_arg(ap, char *);
+	bn = va_arg(ap, char *);
 	msg = va_arg(ap, char *);
 	va_end(ap);
 
 	purple_debug_info("oscar",
-			   "ssi: %s has given you permission to add him to your buddy list\n", sn);
+			   "ssi: %s has given you permission to add him to your buddy list\n", bn);
 
-	buddy = purple_find_buddy(gc->account, sn);
+	buddy = purple_find_buddy(gc->account, bn);
 	if (buddy && (purple_buddy_get_alias_only(buddy)))
-		nombre = g_strdup_printf("%s (%s)", sn, purple_buddy_get_alias_only(buddy));
+		nombre = g_strdup_printf("%s (%s)", bn, purple_buddy_get_alias_only(buddy));
 	else
-		nombre = g_strdup(sn);
+		nombre = g_strdup(bn);
 
 	dialog_msg = g_strdup_printf(_("The user %s has given you permission to add him or her to your buddy list.  Do you want to add this user?"), nombre);
 	g_free(nombre);
 
 	data = g_new(struct name_data, 1);
 	data->gc = gc;
-	data->name = g_strdup(sn);
+	data->name = g_strdup(bn);
 	data->nick = (buddy ? g_strdup(purple_buddy_get_alias_only(buddy)) : NULL);
 
 	purple_request_yes_no(gc, NULL, _("Authorization Given"), dialog_msg,
 						PURPLE_DEFAULT_ACTION_NONE,
-						purple_connection_get_account(gc), sn, NULL,
+						purple_connection_get_account(gc), bn, NULL,
 						data,
 						G_CALLBACK(purple_icq_buddyadd),
 						G_CALLBACK(oscar_free_name_data));
@@ -5463,7 +5463,7 @@ static int purple_ssi_authrequest(OscarD
 static int purple_ssi_authrequest(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
 	PurpleConnection *gc = od->gc;
 	va_list ap;
-	char *sn;
+	char *bn;
 	char *msg;
 	PurpleAccount *account = purple_connection_get_account(gc);
 	gchar *reason = NULL;
@@ -5471,24 +5471,24 @@ static int purple_ssi_authrequest(OscarD
 	PurpleBuddy *buddy;
 
 	va_start(ap, fr);
-	sn = va_arg(ap, char *);
+	bn = va_arg(ap, char *);
 	msg = va_arg(ap, char *);
 	va_end(ap);
 
 	purple_debug_info("oscar",
-			   "ssi: received authorization request from %s\n", sn);
+			   "ssi: received authorization request from %s\n", bn);
 
-	buddy = purple_find_buddy(account, sn);
+	buddy = purple_find_buddy(account, bn);
 
 	if (msg != NULL)
-		reason = purple_plugin_oscar_decode_im_part(account, sn, AIM_CHARSET_CUSTOM, 0x0000, msg, strlen(msg));
+		reason = purple_plugin_oscar_decode_im_part(account, bn, AIM_CHARSET_CUSTOM, 0x0000, msg, strlen(msg));
 
 	data = g_new(struct name_data, 1);
 	data->gc = gc;
-	data->name = g_strdup(sn);
+	data->name = g_strdup(bn);
 	data->nick = (buddy ? g_strdup(purple_buddy_get_alias_only(buddy)) : NULL);
 
-	purple_account_request_authorization(account, sn, NULL,
+	purple_account_request_authorization(account, bn, NULL,
 			(buddy ? purple_buddy_get_alias_only(buddy) : NULL),
 			reason, buddy != NULL, purple_auth_grant,
 			purple_auth_dontgrant_msgprompt, data);
@@ -5500,25 +5500,25 @@ static int purple_ssi_authreply(OscarDat
 static int purple_ssi_authreply(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
 	PurpleConnection *gc = od->gc;
 	va_list ap;
-	char *sn, *msg;
+	char *bn, *msg;
 	gchar *dialog_msg, *nombre;
 	guint8 reply;
 	PurpleBuddy *buddy;
 
 	va_start(ap, fr);
-	sn = va_arg(ap, char *);
+	bn = va_arg(ap, char *);
 	reply = (guint8)va_arg(ap, int);
 	msg = va_arg(ap, char *);
 	va_end(ap);
 
 	purple_debug_info("oscar",
-			   "ssi: received authorization reply from %s.  Reply is 0x%04hhx\n", sn, reply);
+			   "ssi: received authorization reply from %s.  Reply is 0x%04hhx\n", bn, reply);
 
-	buddy = purple_find_buddy(gc->account, sn);
+	buddy = purple_find_buddy(gc->account, bn);
 	if (buddy && (purple_buddy_get_alias_only(buddy)))
-		nombre = g_strdup_printf("%s (%s)", sn, purple_buddy_get_alias_only(buddy));
+		nombre = g_strdup_printf("%s (%s)", bn, purple_buddy_get_alias_only(buddy));
 	else
-		nombre = g_strdup(sn);
+		nombre = g_strdup(bn);
 
 	if (reply) {
 		/* Granted */
@@ -5538,16 +5538,16 @@ static int purple_ssi_gotadded(OscarData
 static int purple_ssi_gotadded(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
 	PurpleConnection *gc = od->gc;
 	va_list ap;
-	char *sn;
+	char *bn;
 	PurpleBuddy *buddy;
 
 	va_start(ap, fr);
-	sn = va_arg(ap, char *);
+	bn = va_arg(ap, char *);
 	va_end(ap);
 
-	buddy = purple_find_buddy(gc->account, sn);
-	purple_debug_info("oscar", "ssi: %s added you to their buddy list\n", sn);
-	purple_account_notify_added(gc->account, sn, NULL, (buddy ? purple_buddy_get_alias_only(buddy) : NULL), NULL);
+	buddy = purple_find_buddy(gc->account, bn);
+	purple_debug_info("oscar", "ssi: %s added you to their buddy list\n", bn);
+	purple_account_notify_added(gc->account, bn, NULL, (buddy ? purple_buddy_get_alias_only(buddy) : NULL), NULL);
 
 	return 1;
 }
@@ -5726,15 +5726,15 @@ const char *oscar_list_icon_icq(PurpleAc
 const char *oscar_list_icon_icq(PurpleAccount *a, PurpleBuddy *b)
 {
 	const char *name = b ? purple_buddy_get_name(b) : NULL;
-	if ((b == NULL) || (name == NULL) || aim_snvalid_sms(name))
+	if ((b == NULL) || (name == NULL) || oscar_util_valid_name_sms(name))
 	{
-		if (a == NULL || aim_snvalid_icq(purple_account_get_username(a)))
+		if (a == NULL || oscar_util_valid_name_icq(purple_account_get_username(a)))
 			return "icq";
 		else
 			return "aim";
 	}
 
-	if (aim_snvalid_icq(name))
+	if (oscar_util_valid_name_icq(name))
 		return "icq";
 	return "aim";
 }
@@ -5742,15 +5742,15 @@ const char *oscar_list_icon_aim(PurpleAc
 const char *oscar_list_icon_aim(PurpleAccount *a, PurpleBuddy *b)
 {
 	const char *name = b ? purple_buddy_get_name(b) : NULL;
-	if ((b == NULL) || (name == NULL) || aim_snvalid_sms(name))
+	if ((b == NULL) || (name == NULL) || oscar_util_valid_name_sms(name))
 	{
-		if (a != NULL && aim_snvalid_icq(purple_account_get_username(a)))
+		if (a != NULL && oscar_util_valid_name_icq(purple_account_get_username(a)))
 			return "icq";
 		else
 			return "aim";
 	}
 
-	if (aim_snvalid_icq(name))
+	if (oscar_util_valid_name_icq(name))
 		return "icq";
 	return "aim";
 }
@@ -6010,7 +6010,7 @@ oscar_status_types(PurpleAccount *accoun
 	g_return_val_if_fail(account != NULL, NULL);
 
 	/* Used to flag some statuses as "user settable" or not */
-	is_icq = aim_snvalid_icq(purple_account_get_username(account));
+	is_icq = oscar_util_valid_name_icq(purple_account_get_username(account));
 
 	/* Common status types */
 	/* Really the available message should only be settable for AIM accounts */
@@ -6093,7 +6093,7 @@ static void oscar_ssi_editcomment(struct
 
 	aim_ssi_editcomment(od, purple_group_get_name(g), data->name, text);
 
-	if (!aim_sncmp(data->name, gc->account->username))
+	if (!oscar_util_name_compare(data->name, gc->account->username))
 		purple_check_comment(od, text);
 
 	oscar_free_name_data(data);
@@ -6228,7 +6228,7 @@ oscar_buddy_menu(PurpleBuddy *buddy) {
 	userinfo = aim_locate_finduserinfo(od, bname);
 	menu = NULL;
 
-	if (od->icq && aim_snvalid_icq(bname))
+	if (od->icq && oscar_util_valid_name_icq(bname))
 	{
 		act = purple_menu_action_new(_("Get AIM Info"),
 								   PURPLE_CALLBACK(oscar_get_aim_info_cb),
@@ -6256,7 +6256,7 @@ oscar_buddy_menu(PurpleBuddy *buddy) {
 #endif
 
 	if (userinfo &&
-		aim_sncmp(purple_account_get_username(account), bname) &&
+		oscar_util_name_compare(purple_account_get_username(account), bname) &&
 		PURPLE_BUDDY_IS_ONLINE(buddy))
 	{
 		if (userinfo->capabilities & OSCAR_CAPABILITY_DIRECTIM)
@@ -6358,13 +6358,13 @@ oscar_show_icq_privacy_opts(PurplePlugin
 						gc);
 }
 
-static void oscar_format_screenname(PurpleConnection *gc, const char *nick) {
+static void oscar_format_username(PurpleConnection *gc, const char *nick) {
 	OscarData *od = gc->proto_data;
-	if (!aim_sncmp(purple_account_get_username(purple_connection_get_account(gc)), nick)) {
+	if (!oscar_util_name_compare(purple_account_get_username(purple_connection_get_account(gc)), nick)) {
 		if (!flap_connection_getbytype(od, SNAC_FAMILY_ADMIN)) {
 			od->setnick = TRUE;
-			g_free(od->newsn);
-			od->newsn = g_strdup(nick);
+			g_free(od->newformatting);
+			od->newformatting = g_strdup(nick);
 			aim_srv_requestnew(od, SNAC_FAMILY_ADMIN);
 		} else {
 			aim_admin_setnick(od, flap_connection_getbytype(od, SNAC_FAMILY_ADMIN), nick);
@@ -6591,7 +6591,7 @@ oscar_can_receive_file(PurpleConnection 
 		 */
 		if (((userinfo == NULL) ||
 			(userinfo->capabilities & OSCAR_CAPABILITY_SENDFILE)) &&
-			aim_sncmp(who, purple_account_get_username(account)))
+			oscar_util_name_compare(who, purple_account_get_username(account)))
 		{
 			return TRUE;
 		}
@@ -6847,14 +6847,14 @@ static gboolean oscar_uri_handler(const 
 
 	/* aim:GoIM?screenname=SCREENNAME&message=MESSAGE */
 	if (!g_ascii_strcasecmp(cmd, "GoIM")) {
-		char *sname = g_hash_table_lookup(params, "screenname");
-		if (sname) {
+		char *bname = g_hash_table_lookup(params, "screenname");
+		if (bname) {
 			char *message = g_hash_table_lookup(params, "message");
 
 			PurpleConversation *conv = purple_find_conversation_with_account(
-				PURPLE_CONV_TYPE_IM, sname, acct);
+				PURPLE_CONV_TYPE_IM, bname, acct);
 			if (conv == NULL)
-				conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, sname);
+				conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, bname);
 			purple_conversation_present(conv);
 
 			if (message) {
@@ -6887,9 +6887,9 @@ static gboolean oscar_uri_handler(const 
 	}
 	/* aim:AddBuddy?screenname=SCREENNAME&groupname=GROUPNAME*/
 	else if (!g_ascii_strcasecmp(cmd, "AddBuddy")) {
-		char *sname = g_hash_table_lookup(params, "screenname");
+		char *bname = g_hash_table_lookup(params, "screenname");
 		char *gname = g_hash_table_lookup(params, "groupname");
-		purple_blist_request_add_buddy(acct, sname, gname, NULL);
+		purple_blist_request_add_buddy(acct, bname, gname, NULL);
 		return TRUE;
 	}
 
============================================================
--- libpurple/protocols/oscar/oscar.h	2cc7dd9e83b07bca32bcafa13af7da780312159b
+++ libpurple/protocols/oscar/oscar.h	19b332fc1275642e20467e9e83aeaaf6fec0ae4f
@@ -74,7 +74,7 @@ extern "C" {
 #define FAIM_SNAC_HASH_SIZE 16
 
 /*
- * Current Maximum Length for Screen Names (not including NULL)
+ * Current Maximum Length for usernames (not including NULL)
  *
  * Currently only names up to 16 characters can be registered
  * however it is apparently legal for them to be larger.
@@ -467,7 +467,7 @@ struct _OscarData
 	gboolean setemail;
 	char *email;
 	gboolean setnick;
-	char *newsn;
+	char *newformatting;
 	gboolean chpass;
 	char *oldp;
 	char *newp;
@@ -573,7 +573,7 @@ struct aim_authresp_info
 
 struct aim_authresp_info
 {
-	char *sn;
+	char *bn;
 	guint16 errorcode;
 	char *errorurl;
 	guint16 regstatus;
@@ -600,8 +600,8 @@ struct aim_redirect_data
 	} chat;
 };
 
-int aim_request_login(OscarData *od, FlapConnection *conn, const char *sn);
-int aim_send_login(OscarData *od, FlapConnection *conn, const char *sn, const char *password, gboolean truncate_pass, ClientInfo *ci, const char *key, gboolean allow_multiple_logins);
+int aim_request_login(OscarData *od, FlapConnection *conn, const char *bn);
+int aim_send_login(OscarData *od, FlapConnection *conn, const char *bn, const char *password, gboolean truncate_pass, ClientInfo *ci, const char *key, gboolean allow_multiple_logins);
 /* 0x000b */ int aim_auth_securid_send(OscarData *od, const char *securid);
 
 void oscar_data_addhandler(OscarData *od, guint16 family, guint16 subtype, aim_rxcallback_t newhandler, guint16 flags);
@@ -798,7 +798,7 @@ struct aim_sendimext_args
 {
 
 	/* These are _required_ */
-	const char *destsn;
+	const char *destbn;
 	guint32 flags; /* often 0 */
 
 	/* Only required if not using multipart messages */
@@ -827,7 +827,7 @@ struct aim_sendrtfmsg_args
  */
 struct aim_sendrtfmsg_args
 {
-	const char *destsn;
+	const char *destbn;
 	guint32 fgcolor;
 	guint32 bgcolor;
 	const char *rtfmsg; /* must be in RTF */
@@ -941,28 +941,28 @@ struct aim_incomingim_ch4_args
 /* 0x0002 */ int aim_im_setparams(OscarData *od, struct aim_icbmparameters *params);
 /* 0x0004 */ int aim_im_reqparams(OscarData *od);
 /* 0x0006 */ int aim_im_sendch1_ext(OscarData *od, struct aim_sendimext_args *args);
-/* 0x0006 */ int aim_im_sendch1(OscarData *, const char *destsn, guint16 flags, const char *msg);
-/* 0x0006 */ int aim_im_sendch2_chatinvite(OscarData *od, const char *sn, const char *msg, guint16 exchange, const char *roomname, guint16 instance);
-/* 0x0006 */ int aim_im_sendch2_icon(OscarData *od, const char *sn, const guint8 *icon, int iconlen, time_t stamp, guint16 iconsum);
+/* 0x0006 */ int aim_im_sendch1(OscarData *, const char *destbn, guint16 flags, const char *msg);
+/* 0x0006 */ int aim_im_sendch2_chatinvite(OscarData *od, const char *bn, const char *msg, guint16 exchange, const char *roomname, guint16 instance);
+/* 0x0006 */ int aim_im_sendch2_icon(OscarData *od, const char *bn, const guint8 *icon, int iconlen, time_t stamp, guint16 iconsum);
 /* 0x0006 */ int aim_im_sendch2_rtfmsg(OscarData *od, struct aim_sendrtfmsg_args *args);
 
 /* 0x0006 */ void aim_im_sendch2_cancel(PeerConnection *peer_conn);
 /* 0x0006 */ void aim_im_sendch2_connected(PeerConnection *peer_conn);
-/* 0x0006 */ void aim_im_sendch2_odc_requestdirect(OscarData *od, guchar *cookie, const char *sn, const guint8 *ip, guint16 port, guint16 requestnumber);
-/* 0x0006 */ void aim_im_sendch2_odc_requestproxy(OscarData *od, guchar *cookie, const char *sn, const guint8 *ip, guint16 pin, guint16 requestnumber);
-/* 0x0006 */ void aim_im_sendch2_sendfile_requestdirect(OscarData *od, guchar *cookie, const char *sn, const guint8 *ip, guint16 port, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles);
-/* 0x0006 */ void aim_im_sendch2_sendfile_requestproxy(OscarData *od, guchar *cookie, const char *sn, const guint8 *ip, guint16 pin, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles);
+/* 0x0006 */ void aim_im_sendch2_odc_requestdirect(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 port, guint16 requestnumber);
+/* 0x0006 */ void aim_im_sendch2_odc_requestproxy(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 pin, guint16 requestnumber);
+/* 0x0006 */ void aim_im_sendch2_sendfile_requestdirect(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 port, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles);
+/* 0x0006 */ void aim_im_sendch2_sendfile_requestproxy(OscarData *od, guchar *cookie, const char *bn, const guint8 *ip, guint16 pin, guint16 requestnumber, const gchar *filename, guint32 size, guint16 numfiles);
 
-/* 0x0006 */ int aim_im_sendch2_geticqaway(OscarData *od, const char *sn, int type);
-/* 0x0006 */ int aim_im_sendch4(OscarData *od, const char *sn, guint16 type, const char *message);
-/* 0x0008 */ int aim_im_warn(OscarData *od, FlapConnection *conn, const char *destsn, guint32 flags);
-/* 0x000b */ int aim_im_denytransfer(OscarData *od, const char *sn, const guchar *cookie, guint16 code);
+/* 0x0006 */ int aim_im_sendch2_geticqaway(OscarData *od, const char *bn, int type);
+/* 0x0006 */ int aim_im_sendch4(OscarData *od, const char *bn, guint16 type, const char *message);
+/* 0x0008 */ int aim_im_warn(OscarData *od, FlapConnection *conn, const char *destbn, guint32 flags);
+/* 0x000b */ int aim_im_denytransfer(OscarData *od, const char *bn, const guchar *cookie, guint16 code);
 /* 0x0010 */ int aim_im_reqofflinemsgs(OscarData *od);
-/* 0x0014 */ int aim_im_sendmtn(OscarData *od, guint16 type1, const char *sn, guint16 type2);
+/* 0x0014 */ int aim_im_sendmtn(OscarData *od, guint16 type1, const char *bn, guint16 type2);
 void aim_icbm_makecookie(guchar* cookie);
 gchar *oscar_encoding_extract(const char *encoding);
 gchar *oscar_encoding_to_utf8(PurpleAccount *account, const char *encoding, const char *text, int textlen);
-gchar *purple_plugin_oscar_decode_im_part(PurpleAccount *account, const char *sourcesn, guint16 charset, guint16 charsubset, const gchar *data, gsize datalen);
+gchar *purple_plugin_oscar_decode_im_part(PurpleAccount *account, const char *sourcebn, guint16 charset, guint16 charsubset, const gchar *data, gsize datalen);
 
 
 /* 0x0002 - family_locate.c */
@@ -997,13 +997,13 @@ struct userinfo_node
 
 struct userinfo_node
 {
-	char *sn;
+	char *bn;
 	struct userinfo_node *next;
 };
 
 typedef struct aim_userinfo_s
 {
-	char *sn;
+	char *bn;
 	guint16 warnlevel; /* evil percent * 10 (999 = 99.9%) */
 	guint16 idletime; /* in seconds */
 	guint16 flags;
@@ -1049,7 +1049,7 @@ struct aim_invite_priv
 
 struct aim_invite_priv
 {
-	char *sn;
+	char *bn;
 	char *roomname;
 	guint16 exchange;
 	guint16 instance;
@@ -1072,7 +1072,7 @@ struct aim_invite_priv
 #define AIM_COOKIETYPE_OFTIMAGE 0x14
 #define AIM_COOKIETYPE_OFTICON  0x15
 
-aim_userinfo_t *aim_locate_finduserinfo(OscarData *od, const char *sn);
+aim_userinfo_t *aim_locate_finduserinfo(OscarData *od, const char *bn);
 void aim_locate_dorequest(OscarData *od);
 
 /* 0x0002 */ int aim_locate_reqrights(OscarData *od);
@@ -1080,11 +1080,11 @@ void aim_locate_dorequest(OscarData *od)
 /* 0x0004 */ int aim_locate_setprofile(OscarData *od, const char *profile_encoding, const gchar *profile, const int profile_len, const char *awaymsg_encoding, const gchar *awaymsg, const int awaymsg_len);
 /* 0x0005 */ int aim_locate_getinfo(OscarData *od, const char *, guint16);
 /* 0x0009 */ int aim_locate_setdirinfo(OscarData *od, const char *first, const char *middle, const char *last, const char *maiden, const char *nickname, const char *street, const char *city, const char *state, const char *zip, int country, guint16 privacy);
-/* 0x000b */ int aim_locate_000b(OscarData *od, const char *sn);
+/* 0x000b */ int aim_locate_000b(OscarData *od, const char *bn);
 /* 0x000f */ int aim_locate_setinterests(OscarData *od, const char *interest1, const char *interest2, const char *interest3, const char *interest4, const char *interest5, guint16 privacy);
-/* 0x0015 */ int aim_locate_getinfoshort(OscarData *od, const char *sn, guint32 flags);
+/* 0x0015 */ int aim_locate_getinfoshort(OscarData *od, const char *bn, guint32 flags);
 
-void aim_locate_autofetch_away_message(OscarData *od, const char *sn);
+void aim_locate_autofetch_away_message(OscarData *od, const char *bn);
 guint32 aim_locate_getcaps(OscarData *od, ByteStream *bs, int len);
 guint32 aim_locate_getcaps_short(OscarData *od, ByteStream *bs, int len);
 void aim_info_free(aim_userinfo_t *);
@@ -1151,7 +1151,7 @@ struct aim_odir
 	char *country;
 	char *state;
 	char *city;
-	char *sn;
+	char *bn;
 	char *interest;
 	char *nick;
 	char *zip;
@@ -1168,7 +1168,7 @@ int aim_bart_upload(OscarData *od, const
 
 /* 0x0010 - family_bart.c */
 int aim_bart_upload(OscarData *od, const guint8 *icon, guint16 iconlen);
-int aim_bart_request(OscarData *od, const char *sn, guint8 iconcsumtype, const guint8 *iconstr, guint16 iconstrlen);
+int aim_bart_request(OscarData *od, const char *bn, guint8 iconcsumtype, const guint8 *iconstr, guint16 iconstrlen);
 
 
 
@@ -1218,20 +1218,20 @@ struct aim_ssi_tmp
 /* 0x0007 */ int aim_ssi_enable(OscarData *od);
 /* 0x0011 */ int aim_ssi_modbegin(OscarData *od);
 /* 0x0012 */ int aim_ssi_modend(OscarData *od);
-/* 0x0014 */ int aim_ssi_sendauth(OscarData *od, char *sn, char *msg);
-/* 0x0018 */ int aim_ssi_sendauthrequest(OscarData *od, char *sn, const char *msg);
-/* 0x001a */ int aim_ssi_sendauthreply(OscarData *od, char *sn, guint8 reply, const char *msg);
+/* 0x0014 */ int aim_ssi_sendauth(OscarData *od, char *bn, char *msg);
+/* 0x0018 */ int aim_ssi_sendauthrequest(OscarData *od, char *bn, const char *msg);
+/* 0x001a */ int aim_ssi_sendauthreply(OscarData *od, char *bn, guint8 reply, const char *msg);
 
 /* Client functions for retrieving SSI data */
 struct aim_ssi_item *aim_ssi_itemlist_find(struct aim_ssi_item *list, guint16 gid, guint16 bid);
-struct aim_ssi_item *aim_ssi_itemlist_finditem(struct aim_ssi_item *list, const char *gn, const char *sn, guint16 type);
-struct aim_ssi_item *aim_ssi_itemlist_exists(struct aim_ssi_item *list, const char *sn);
-char *aim_ssi_itemlist_findparentname(struct aim_ssi_item *list, const char *sn);
+struct aim_ssi_item *aim_ssi_itemlist_finditem(struct aim_ssi_item *list, const char *gn, const char *bn, guint16 type);
+struct aim_ssi_item *aim_ssi_itemlist_exists(struct aim_ssi_item *list, const char *bn);
+char *aim_ssi_itemlist_findparentname(struct aim_ssi_item *list, const char *bn);
 int aim_ssi_getpermdeny(struct aim_ssi_item *list);
 guint32 aim_ssi_getpresence(struct aim_ssi_item *list);
-char *aim_ssi_getalias(struct aim_ssi_item *list, const char *gn, const char *sn);
-char *aim_ssi_getcomment(struct aim_ssi_item *list, const char *gn, const char *sn);
-gboolean aim_ssi_waitingforauth(struct aim_ssi_item *list, const char *gn, const char *sn);
+char *aim_ssi_getalias(struct aim_ssi_item *list, const char *gn, const char *bn);
+char *aim_ssi_getcomment(struct aim_ssi_item *list, const char *gn, const char *bn);
+gboolean aim_ssi_waitingforauth(struct aim_ssi_item *list, const char *gn, const char *bn);
 
 /* Client functions for changing SSI data */
 int aim_ssi_addbuddy(OscarData *od, const char *name, const char *group, GSList *tlvlist, const char *alias, const char *comment, const char *smsnum, gboolean needauth);
@@ -1241,9 +1241,9 @@ int aim_ssi_deldeny(OscarData *od, const
 int aim_ssi_delgroup(OscarData *od, const char *group);
 int aim_ssi_delpermit(OscarData *od, const char *name);
 int aim_ssi_deldeny(OscarData *od, const char *name);
-int aim_ssi_movebuddy(OscarData *od, const char *oldgn, const char *newgn, const char *sn);
-int aim_ssi_aliasbuddy(OscarData *od, const char *gn, const char *sn, const char *alias);
-int aim_ssi_editcomment(OscarData *od, const char *gn, const char *sn, const char *alias);
+int aim_ssi_movebuddy(OscarData *od, const char *oldgn, const char *newgn, const char *bn);
+int aim_ssi_aliasbuddy(OscarData *od, const char *gn, const char *bn, const char *alias);
+int aim_ssi_editcomment(OscarData *od, const char *gn, const char *bn, const char *alias);
 int aim_ssi_rename_group(OscarData *od, const char *oldgn, const char *newgn);
 int aim_ssi_cleanlist(OscarData *od);
 int aim_ssi_deletelist(OscarData *od);
@@ -1489,11 +1489,10 @@ char *aimutil_itemindex(char *toSearch, 
 int aimutil_itemcnt(char *toSearch, char dl);
 char *aimutil_itemindex(char *toSearch, int theindex, char dl);
 
-gboolean aim_snvalid(const char *sn);
-gboolean aim_snvalid_icq(const char *sn);
-gboolean aim_snvalid_sms(const char *sn);
-int aim_snlen(const char *sn);
-int aim_sncmp(const char *sn1, const char *sn2);
+gboolean oscar_util_valid_name(const char *bn);
+gboolean oscar_util_valid_name_icq(const char *bn);
+gboolean oscar_util_valid_name_sms(const char *bn);
+int oscar_util_name_compare(const char *bn1, const char *bn2);
 
 
 
============================================================
--- libpurple/protocols/oscar/peer.c	f65d61b859e3b0abdcdc09f1bf125e3a9a5fc3ca
+++ libpurple/protocols/oscar/peer.c	0f6fd54dbac2a7926248b6b0b85ea274f186b999
@@ -69,7 +69,7 @@ PeerConnection *
 #endif
 
 PeerConnection *
-peer_connection_find_by_type(OscarData *od, const char *sn, OscarCapability type)
+peer_connection_find_by_type(OscarData *od, const char *bn, OscarCapability type)
 {
 	GSList *cur;
 	PeerConnection *conn;
@@ -77,7 +77,7 @@ peer_connection_find_by_type(OscarData *
 	for (cur = od->peer_connections; cur != NULL; cur = cur->next)
 	{
 		conn = cur->data;
-		if ((conn->type == type) && !aim_sncmp(conn->sn, sn))
+		if ((conn->type == type) && !oscar_util_name_compare(conn->bn, bn))
 			return conn;
 	}
 
@@ -88,7 +88,7 @@ PeerConnection *
  * @param cookie This must be exactly 8 characters.
  */
 PeerConnection *
-peer_connection_find_by_cookie(OscarData *od, const char *sn, const guchar *cookie)
+peer_connection_find_by_cookie(OscarData *od, const char *bn, const guchar *cookie)
 {
 	GSList *cur;
 	PeerConnection *conn;
@@ -96,7 +96,7 @@ peer_connection_find_by_cookie(OscarData
 	for (cur = od->peer_connections; cur != NULL; cur = cur->next)
 	{
 		conn = cur->data;
-		if (!memcmp(conn->cookie, cookie, 8) && !aim_sncmp(conn->sn, sn))
+		if (!memcmp(conn->cookie, cookie, 8) && !oscar_util_name_compare(conn->bn, bn))
 			return conn;
 	}
 
@@ -104,7 +104,7 @@ PeerConnection *
 }
 
 PeerConnection *
-peer_connection_new(OscarData *od, OscarCapability type, const char *sn)
+peer_connection_new(OscarData *od, OscarCapability type, const char *bn)
 {
 	PeerConnection *conn;
 	PurpleAccount *account;
@@ -114,7 +114,7 @@ peer_connection_new(OscarData *od, Oscar
 	conn = g_new0(PeerConnection, 1);
 	conn->od = od;
 	conn->type = type;
-	conn->sn = g_strdup(sn);
+	conn->bn = g_strdup(bn);
 	conn->buffer_outgoing = purple_circ_buffer_new(0);
 	conn->listenerfd = -1;
 	conn->fd = -1;
@@ -228,7 +228,7 @@ peer_connection_destroy_cb(gpointer data
 		conn->xfer = NULL;
 	}
 
-	g_free(conn->sn);
+	g_free(conn->bn);
 	g_free(conn->error_message);
 	g_free(conn->proxyip);
 	g_free(conn->clientip);
@@ -695,20 +695,20 @@ peer_connection_establish_listener_cb(in
 	if (conn->type == OSCAR_CAPABILITY_DIRECTIM)
 	{
 		aim_im_sendch2_odc_requestdirect(od,
-				conn->cookie, conn->sn, purple_network_ip_atoi(listener_ip),
+				conn->cookie, conn->bn, purple_network_ip_atoi(listener_ip),
 				listener_port, ++conn->lastrequestnumber);
 
 		/* Print a message to a local conversation window */
-		conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->sn);
+		conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->bn);
 		tmp = g_strdup_printf(_("Asking %s to connect to us at %s:%hu for "
-				"Direct IM."), conn->sn, listener_ip, listener_port);
+				"Direct IM."), conn->bn, listener_ip, listener_port);
 		purple_conversation_write(conv, NULL, tmp, PURPLE_MESSAGE_SYSTEM, time(NULL));
 		g_free(tmp);
 	}
 	else if (conn->type == OSCAR_CAPABILITY_SENDFILE)
 	{
 		aim_im_sendch2_sendfile_requestdirect(od,
-				conn->cookie, conn->sn,
+				conn->cookie, conn->bn,
 				purple_network_ip_atoi(listener_ip),
 				listener_port, ++conn->lastrequestnumber,
 				(const gchar *)conn->xferdata.name,
@@ -787,7 +787,7 @@ peer_connection_trynext(PeerConnection *
 			PurpleConversation *conv;
 			tmp = g_strdup_printf(_("Attempting to connect to %s:%hu."),
 					conn->verifiedip, conn->port);
-			conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->sn);
+			conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->bn);
 			purple_conversation_write(conv, NULL, tmp,
 					PURPLE_MESSAGE_SYSTEM, time(NULL));
 			g_free(tmp);
@@ -860,7 +860,7 @@ peer_connection_trynext(PeerConnection *
 			gchar *tmp;
 			PurpleConversation *conv;
 			tmp = g_strdup(_("Attempting to connect via proxy server."));
-			conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->sn);
+			conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, conn->bn);
 			purple_conversation_write(conv, NULL, tmp,
 					PURPLE_MESSAGE_SYSTEM, time(NULL));
 			g_free(tmp);
@@ -885,13 +885,13 @@ void
  * Initiate a peer connection with someone.
  */
 void
-peer_connection_propose(OscarData *od, OscarCapability type, const char *sn)
+peer_connection_propose(OscarData *od, OscarCapability type, const char *bn)
 {
 	PeerConnection *conn;
 
 	if (type == OSCAR_CAPABILITY_DIRECTIM)
 	{
-		conn = peer_connection_find_by_type(od, sn, type);
+		conn = peer_connection_find_by_type(od, bn, type);
 		if (conn != NULL)
 		{
 			if (conn->ready)
@@ -900,10 +900,10 @@ peer_connection_propose(OscarData *od, O
 				PurpleConversation *conv;
 
 				purple_debug_info("oscar", "Already have a direct IM "
-						"session with %s.\n", sn);
+						"session with %s.\n", bn);
 				account = purple_connection_get_account(od->gc);
 				conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM,
-						sn, account);
+						bn, account);
 				if (conv != NULL)
 					purple_conversation_present(conv);
 				return;
@@ -914,7 +914,7 @@ peer_connection_propose(OscarData *od, O
 		}
 	}
 
-	conn = peer_connection_new(od, type, sn);
+	conn = peer_connection_new(od, type, bn);
 	conn->flags |= PEER_CONNECTION_FLAG_INITIATED_BY_ME;
 	conn->flags |= PEER_CONNECTION_FLAG_APPROVED;
 	aim_icbm_makecookie(conn->cookie);
@@ -951,7 +951,7 @@ peer_connection_got_proposition_no_cb(gp
 
 	conn = data;
 
-	aim_im_denytransfer(conn->od, conn->sn, conn->cookie,
+	aim_im_denytransfer(conn->od, conn->bn, conn->cookie,
 			AIM_TRANSFER_DENY_DECLINE);
 	peer_connection_destroy(conn, OSCAR_DISCONNECT_LOCAL_CLOSED, NULL);
 }
@@ -960,7 +960,7 @@ void
  * Someone else wants to establish a peer connection with us.
  */
 void
-peer_connection_got_proposition(OscarData *od, const gchar *sn, const gchar *message, IcbmArgsCh2 *args)
+peer_connection_got_proposition(OscarData *od, const gchar *bn, const gchar *message, IcbmArgsCh2 *args)
 {
 	PurpleConnection *gc;
 	PurpleAccount *account;
@@ -976,7 +976,7 @@ peer_connection_got_proposition(OscarDat
 	 * and we should try connecting to them, instead.  Or they want
 	 * to go through a proxy.
 	 */
-	conn = peer_connection_find_by_cookie(od, sn, args->cookie);
+	conn = peer_connection_find_by_cookie(od, bn, args->cookie);
 	if ((conn != NULL) && (conn->type == args->type))
 	{
 		purple_debug_info("oscar", "Remote user wants to try a "
@@ -1000,12 +1000,12 @@ peer_connection_got_proposition(OscarDat
 	/* If this is a direct IM, then close any existing session */
 	if (args->type == OSCAR_CAPABILITY_DIRECTIM)
 	{
-		conn = peer_connection_find_by_type(od, sn, args->type);
+		conn = peer_connection_find_by_type(od, bn, args->type);
 		if (conn != NULL)
 		{
 			/* Close the old direct IM and start a new one */
 			purple_debug_info("oscar", "Received new direct IM request "
-				"from %s.  Destroying old connection.\n", sn);
+				"from %s.  Destroying old connection.\n", bn);
 			peer_connection_destroy(conn, OSCAR_DISCONNECT_REMOTE_CLOSED, NULL);
 		}
 	}
@@ -1019,12 +1019,12 @@ peer_connection_got_proposition(OscarDat
 		{
 			purple_debug_warning("oscar",
 					"%s tried to send you a file with incomplete "
-					"information.\n", sn);
+					"information.\n", bn);
 			return;
 		}
 	}
 
-	conn = peer_connection_new(od, args->type, sn);
+	conn = peer_connection_new(od, args->type, bn);
 	memcpy(conn->cookie, args->cookie, 8);
 	if (args->use_proxy)
 		conn->proxyip = g_strdup(args->proxyip);
@@ -1037,7 +1037,7 @@ peer_connection_got_proposition(OscarDat
 	if (args->type == OSCAR_CAPABILITY_DIRECTIM)
 	{
 		buf = g_strdup_printf(_("%s has just asked to directly connect to %s"),
-				sn, purple_account_get_username(account));
+				bn, purple_account_get_username(account));
 
 		purple_request_action(conn, NULL, buf,
 						_("This requires a direct connection between "
@@ -1046,7 +1046,7 @@ peer_connection_got_proposition(OscarDat
 						  "revealed, this may be considered a privacy "
 						  "risk."),
 						PURPLE_DEFAULT_ACTION_NONE,
-						account, sn, NULL,
+						account, bn, NULL,
 						conn, 2,
 						_("C_onnect"), G_CALLBACK(peer_connection_got_proposition_yes_cb),
 						_("Cancel"), G_CALLBACK(peer_connection_got_proposition_no_cb));
@@ -1055,7 +1055,7 @@ peer_connection_got_proposition(OscarDat
 	{
 		gchar *filename;
 
-		conn->xfer = purple_xfer_new(account, PURPLE_XFER_RECEIVE, sn);
+		conn->xfer = purple_xfer_new(account, PURPLE_XFER_RECEIVE, bn);
 		if (conn->xfer)
 		{
 			conn->xfer->data = conn;
============================================================
--- libpurple/protocols/oscar/peer.h	008e6d6cf470e2c72b7914ec59d2e39ccd36bcf0
+++ libpurple/protocols/oscar/peer.h	5a623336d2effe52745851a81503668b63d0abac
@@ -83,7 +83,7 @@ struct _OdcFrame
 	/* Unknown */
 	guint16 flags;                /* 38 */
 	/* Unknown */
-	guchar sn[32];                /* 44 */
+	guchar bn[32];                /* 44 */
 	/* Unknown */
 	ByteStream payload;           /* 76 */
 };
@@ -137,7 +137,7 @@ struct _PeerConnection
 {
 	OscarData *od;
 	OscarCapability type;
-	char *sn;
+	char *bn;
 	guchar magic[4];
 	guchar cookie[8];
 	guint16 lastrequestnumber;
@@ -228,12 +228,12 @@ struct _PeerConnection
  * @param type The type of the peer connection.  One of
  *        OSCAR_CAPABILITY_DIRECTIM or OSCAR_CAPABILITY_SENDFILE.
  */
-PeerConnection *peer_connection_new(OscarData *od, OscarCapability type, const char *sn);
+PeerConnection *peer_connection_new(OscarData *od, OscarCapability type, const char *bn);
 
 void peer_connection_destroy(PeerConnection *conn, OscarDisconnectReason reason, const gchar *error_message);
 void peer_connection_schedule_destroy(PeerConnection *conn, OscarDisconnectReason reason, const gchar *error_message);
-PeerConnection *peer_connection_find_by_type(OscarData *od, const char *sn, OscarCapability type);
-PeerConnection *peer_connection_find_by_cookie(OscarData *od, const char *sn, const guchar *cookie);
+PeerConnection *peer_connection_find_by_type(OscarData *od, const char *bn, OscarCapability type);
+PeerConnection *peer_connection_find_by_cookie(OscarData *od, const char *bn, const guchar *cookie);
 
 void peer_connection_listen_cb(gpointer data, gint source, PurpleInputCondition cond);
 void peer_connection_recv_cb(gpointer data, gint source, PurpleInputCondition cond);
@@ -241,8 +241,8 @@ void peer_connection_finalize_connection
 
 void peer_connection_trynext(PeerConnection *conn);
 void peer_connection_finalize_connection(PeerConnection *conn);
-void peer_connection_propose(OscarData *od, OscarCapability type, const char *sn);
-void peer_connection_got_proposition(OscarData *od, const gchar *sn, const gchar *message, IcbmArgsCh2 *args);
+void peer_connection_propose(OscarData *od, OscarCapability type, const char *bn);
+void peer_connection_got_proposition(OscarData *od, const gchar *bn, const gchar *message, IcbmArgsCh2 *args);
 
 /*
  * For ODC
============================================================
--- libpurple/protocols/oscar/peer_proxy.c	c4c669b6eadc670046bc4e8b66a27bcdd7be23e9
+++ libpurple/protocols/oscar/peer_proxy.c	45a63bd0247c4a227d7c9cc18198ae42f59ad727
@@ -63,19 +63,19 @@ peer_proxy_send_create_new_conn(PeerConn
 {
 	ProxyFrame frame;
 	PurpleAccount *account;
-	const gchar *sn;
-	guint8 sn_length;
+	const gchar *bn;
+	guint8 bn_length;
 
 	memset(&frame, 0, sizeof(ProxyFrame));
 	frame.type = PEER_PROXY_TYPE_CREATE;
 	frame.flags = 0x0000;
 
 	account = purple_connection_get_account(conn->od->gc);
-	sn = purple_account_get_username(account);
-	sn_length = strlen(sn);
-	byte_stream_new(&frame.payload, 1 + sn_length + 8 + 20);
-	byte_stream_put8(&frame.payload, sn_length);
-	byte_stream_putraw(&frame.payload, (const guint8 *)sn, sn_length);
+	bn = purple_account_get_username(account);
+	bn_length = strlen(bn);
+	byte_stream_new(&frame.payload, 1 + bn_length + 8 + 20);
+	byte_stream_put8(&frame.payload, bn_length);
+	byte_stream_putraw(&frame.payload, (const guint8 *)bn, bn_length);
 	byte_stream_putraw(&frame.payload, conn->cookie, 8);
 
 	byte_stream_put16(&frame.payload, 0x0001); /* Type */
@@ -99,19 +99,19 @@ peer_proxy_send_join_existing_conn(PeerC
 {
 	ProxyFrame frame;
 	PurpleAccount *account;
-	const gchar *sn;
-	guint8 sn_length;
+	const gchar *bn;
+	guint8 bn_length;
 
 	memset(&frame, 0, sizeof(ProxyFrame));
 	frame.type = PEER_PROXY_TYPE_JOIN;
 	frame.flags = 0x0000;
 
 	account = purple_connection_get_account(conn->od->gc);
-	sn = purple_account_get_username(account);
-	sn_length = strlen(sn);
-	byte_stream_new(&frame.payload, 1 + sn_length + 2 + 8 + 20);
-	byte_stream_put8(&frame.payload, sn_length);
-	byte_stream_putraw(&frame.payload, (const guint8 *)sn, sn_length);
+	bn = purple_account_get_username(account);
+	bn_length = strlen(bn);
+	byte_stream_new(&frame.payload, 1 + bn_length + 2 + 8 + 20);
+	byte_stream_put8(&frame.payload, bn_length);
+	byte_stream_putraw(&frame.payload, (const guint8 *)bn, bn_length);
 	byte_stream_put16(&frame.payload, pin);
 	byte_stream_putraw(&frame.payload, conn->cookie, 8);
 
@@ -149,11 +149,11 @@ peer_proxy_recv_frame(PeerConnection *co
 		if (conn->type == OSCAR_CAPABILITY_DIRECTIM)
 			aim_im_sendch2_odc_requestproxy(conn->od,
 					conn->cookie,
-					conn->sn, ip, pin, ++conn->lastrequestnumber);
+					conn->bn, ip, pin, ++conn->lastrequestnumber);
 		else if (conn->type == OSCAR_CAPABILITY_SENDFILE)
 		{
 			aim_im_sendch2_sendfile_requestproxy(conn->od,
-					conn->cookie, conn->sn,
+					conn->cookie, conn->bn,
 					ip, pin, ++conn->lastrequestnumber,
 					(const gchar *)conn->xferdata.name,
 					conn->xferdata.size, conn->xferdata.totfiles);
============================================================
--- libpurple/protocols/oscar/snactypes.h	95debb6dc8f2364878d461651b2bef9648cece5c
+++ libpurple/protocols/oscar/snactypes.h	6c3223dfa8c30d7fbd92eddd12d18a44d3a956dd
@@ -252,7 +252,6 @@
  * SNAC Family: Authorizer
  *
  * Used only in protocol versions three and above.
- *
  */
 #define SNAC_SUBTYPE_AUTH_ERROR 0x0001
 #define SNAC_SUBTYPE_AUTH_LOGINREQEST 0x0002
@@ -266,8 +265,7 @@
  * SNAC Family: Email
  *
  * Used for getting information on the email address
- * associated with your screen name.
- *
+ * associated with your username.
  */
 #define SNAC_SUBTYPE_ALERT_ERROR 0x0001
 #define SNAC_SUBTYPE_ALERT_SENDCOOKIES 0x0006
@@ -280,7 +278,6 @@
  * This isn't truly a SNAC family either, but using
  * these, we can integrated non-SNAC services into
  * the SNAC-centered libfaim callback structure.
- *
  */
 #define AIM_CB_SPECIAL_CONNERR 0x0003
 #define AIM_CB_SPECIAL_CONNINITDONE 0x0006
============================================================
--- libpurple/protocols/oscar/util.c	0345c42bf7ea1402a21aedc275a827883c07f4f7
+++ libpurple/protocols/oscar/util.c	3012570162a0277823637f3fe5f19ed45cafa784
@@ -136,27 +136,27 @@ aimutil_iconsum(const guint8 *buf, int b
 }
 
 /**
- * Check if the given screen name is a valid AIM screen name.
+ * Check if the given name is a valid AIM username.
  * Example: BobDole
  * Example: Henry_Ford at mac.com
  * Example: 1KrazyKat at example.com
  *
- * @return TRUE if the screen name is valid, FALSE if not.
+ * @return TRUE if the name is valid, FALSE if not.
  */
 static gboolean
-aim_snvalid_aim(const char *sn)
+oscar_util_valid_name_aim(const char *name)
 {
 	int i;
 
-	if (purple_email_is_valid(sn))
+	if (purple_email_is_valid(name))
 		return TRUE;
 
-	/* Normal AIM screen names can't start with a number */
-	if (isdigit(sn[0]))
+	/* Normal AIM usernames can't start with a number */
+	if (isdigit(name[0]))
 		return FALSE;
 
-	for (i = 0; sn[i] != '\0'; i++) {
-		if (!isalnum(sn[i]) && (sn[i] != ' '))
+	for (i = 0; name[i] != '\0'; i++) {
+		if (!isalnum(name[i]) && (name[i] != ' '))
 			return FALSE;
 	}
 
@@ -164,18 +164,18 @@ aim_snvalid_aim(const char *sn)
 }
 
 /**
- * Check if the given screen name is a valid ICQ screen name.
+ * Check if the given name is a valid ICQ username.
  * Example: 1234567
  *
- * @return TRUE if the screen name is valid, FALSE if not.
+ * @return TRUE if the name is valid, FALSE if not.
  */
 gboolean
-aim_snvalid_icq(const char *sn)
+oscar_util_valid_name_icq(const char *name)
 {
 	int i;
 
-	for (i = 0; sn[i] != '\0'; i++) {
-		if (!isdigit(sn[i]))
+	for (i = 0; name[i] != '\0'; i++) {
+		if (!isdigit(name[i]))
 			return FALSE;
 	}
 
@@ -183,21 +183,21 @@ aim_snvalid_icq(const char *sn)
 }
 
 /**
- * Check if the given screen name is a valid SMS screen name.
+ * Check if the given name is a valid SMS username.
  * Example: +19195551234
  *
- * @return TRUE if the screen name is valid, FALSE if not.
+ * @return TRUE if the name is valid, FALSE if not.
  */
 gboolean
-aim_snvalid_sms(const char *sn)
+oscar_util_valid_name_sms(const char *name)
 {
 	int i;
 
-	if (sn[0] != '+')
+	if (name[0] != '+')
 		return FALSE;
 
-	for (i = 1; sn[i] != '\0'; i++) {
-		if (!isdigit(sn[i]))
+	for (i = 1; name[i] != '\0'; i++) {
+		if (!isdigit(name[i]))
 			return FALSE;
 	}
 
@@ -205,44 +205,46 @@ aim_snvalid_sms(const char *sn)
 }
 
 /**
- * Check if the given screen name is a valid oscar screen name.
+ * Check if the given name is a valid oscar username.
  *
- * @return TRUE if the screen name is valid, FALSE if not.
+ * @return TRUE if the name is valid, FALSE if not.
  */
 gboolean
-aim_snvalid(const char *sn)
+oscar_util_valid_name(const char *name)
 {
-	if ((sn == NULL) || (*sn == '\0'))
+	if ((name == NULL) || (*name == '\0'))
 		return FALSE;
 
-	return aim_snvalid_icq(sn) || aim_snvalid_sms(sn) || aim_snvalid_aim(sn);
+	return oscar_util_valid_name_icq(name)
+			|| oscar_util_valid_name_sms(name)
+			|| oscar_util_valid_name_aim(name);
 }
 
 /**
- * This takes two screen names and compares them using the rules
- * on screen names for AIM/AOL.  Mainly, this means case and space
+ * This takes two names and compares them using the rules
+ * on usernames for AIM/AOL.  Mainly, this means case and space
  * insensitivity (all case differences and spacing differences are
- * ignored, with the exception that screen names can not start with
+ * ignored, with the exception that usernames can not start with
  * a space).
  *
  * @return 0 if equal, non-0 if different
  */
 /* TODO: Do something different for email addresses. */
 int
-aim_sncmp(const char *sn1, const char *sn2)
+oscar_util_name_compare(const char *name1, const char *name2)
 {
 
-	if ((sn1 == NULL) || (sn2 == NULL))
+	if ((name1 == NULL) || (name2 == NULL))
 		return -1;
 
 	do {
-		while (*sn2 == ' ')
-			sn2++;
-		while (*sn1 == ' ')
-			sn1++;
-		if (toupper(*sn1) != toupper(*sn2))
+		while (*name2 == ' ')
+			name2++;
+		while (*name1 == ' ')
+			name1++;
+		if (toupper(*name1) != toupper(*name2))
 			return 1;
-	} while ((*sn1 != '\0') && sn1++ && sn2++);
+	} while ((*name1 != '\0') && name1++ && name2++);
 
 	return 0;
 }
============================================================
--- libpurple/protocols/yahoo/yahoo.c	f84d098bc637dd50176d25486595fbb8ca829000
+++ libpurple/protocols/yahoo/yahoo.c	6d3778f7b6af69334c12da55e3e2ff32de5d67dd
@@ -4284,7 +4284,7 @@ static PurpleAccount *find_acct(const ch
 }
 
 /* This may not be the best way to do this, but we find the first key w/o a value
- * and assume it is the screenname */
+ * and assume it is the buddy name */
 static void yahoo_find_uri_novalue_param(gpointer key, gpointer value, gpointer user_data)
 {
 	char **retval = user_data;
============================================================
--- libpurple/prpl.h	db7ce0ba36c973d6d345590464682b7924b65a5e
+++ libpurple/prpl.h	b1beff590df7e5874410625b882ed9d2f0df769d
@@ -178,9 +178,11 @@ typedef enum
 	OPT_PROTO_USE_POINTSIZE = 0x00000100,
 
 	/**
-	 * Set the Register button active when screenname is not given.
+	 * Set the Register button active even when the username has not
+	 * been specified.
 	 *
-	 * Gadu-Gadu doesn't need a screenname to register new account.
+	 * Gadu-Gadu doesn't need a username to register new account (because
+	 * usernames are assigned by the server).
 	 */
 	OPT_PROTO_REGISTER_NOSCREENNAME = 0x00000200,
 
@@ -594,7 +596,7 @@ const char *purple_attention_type_get_un
 /*@{*/
 
 /**
- * Notifies Purple that an account's idle state and time have changed.
+ * Notifies Purple that our account's idle state and time have changed.
  *
  * This is meant to be called from protocol plugins.
  *
@@ -606,7 +608,7 @@ void purple_prpl_got_account_idle(Purple
 								time_t idle_time);
 
 /**
- * Notifies Purple of an account's log-in time.
+ * Notifies Purple of our account's log-in time.
  *
  * This is meant to be called from protocol plugins.
  *
@@ -616,7 +618,7 @@ void purple_prpl_got_account_login_time(
 void purple_prpl_got_account_login_time(PurpleAccount *account, time_t login_time);
 
 /**
- * Notifies Purple that an account's status has changed.
+ * Notifies Purple that our account's status has changed.
  *
  * This is meant to be called from protocol plugins.
  *
@@ -627,13 +629,14 @@ void purple_prpl_got_account_status(Purp
  */
 void purple_prpl_got_account_status(PurpleAccount *account,
 								  const char *status_id, ...) G_GNUC_NULL_TERMINATED;
+
 /**
- * Notifies Purple that a user's idle state and time have changed.
+ * Notifies Purple that a buddy's idle state and time have changed.
  *
  * This is meant to be called from protocol plugins.
  *
  * @param account   The account the user is on.
- * @param name      The screen name of the user.
+ * @param name      The name of the buddy.
  * @param idle      The user's idle state.
  * @param idle_time The user's idle time.  This is the time at
  *                  which the user became idle, in seconds since
@@ -644,24 +647,24 @@ void purple_prpl_got_user_idle(PurpleAcc
 							 gboolean idle, time_t idle_time);
 
 /**
- * Notifies Purple of a user's log-in time.
+ * Notifies Purple of a buddy's log-in time.
  *
  * This is meant to be called from protocol plugins.
  *
  * @param account    The account the user is on.
- * @param name       The screen name of the user.
+ * @param name       The name of the buddy.
  * @param login_time The user's log-in time.
  */
 void purple_prpl_got_user_login_time(PurpleAccount *account, const char *name,
 								   time_t login_time);
 
 /**
- * Notifies Purple that a user's status has been activated.
+ * Notifies Purple that a buddy's status has been activated.
  *
  * This is meant to be called from protocol plugins.
  *
  * @param account   The account the user is on.
- * @param name      The screen name of the user.
+ * @param name      The name of the buddy.
  * @param status_id The status ID.
  * @param ...       A NULL-terminated list of attribute IDs and values,
  *                  beginning with the value for @a attr_id.
@@ -670,19 +673,19 @@ void purple_prpl_got_user_status(PurpleA
 							   const char *status_id, ...) G_GNUC_NULL_TERMINATED;
 
 /**
- * Notifies libpurple that a user's status has been deactivated
+ * Notifies libpurple that a buddy's status has been deactivated
  *
  * This is meant to be called from protocol plugins.
  *
  * @param account   The account the user is on.
- * @param name      The screen name of the user.
+ * @param name      The name of the buddy.
  * @param status_id The status ID.
  */
 void purple_prpl_got_user_status_deactive(PurpleAccount *account, const char *name,
 					const char *status_id);
 
 /**
- * Informs the server that an account's status changed.
+ * Informs the server that our account's status changed.
  *
  * @param account    The account the user is on.
  * @param old_status The previous status.
@@ -703,37 +706,43 @@ GList *purple_prpl_get_statuses(PurpleAc
  */
 GList *purple_prpl_get_statuses(PurpleAccount *account, PurplePresence *presence);
 
-/** Send an attention request message.
+/**
+ * Send an attention request message.
  *
  * @param gc The connection to send the message on.
  * @param who Whose attention to request.
  * @param type_code An index into the prpl's attention_types list determining the type
- * 	of the attention request command to send. 0 if prpl only defines one
- * 	(for example, Yahoo and MSN), but some protocols define more (MySpaceIM).
+ *        of the attention request command to send. 0 if prpl only defines one
+ *        (for example, Yahoo and MSN), but some protocols define more (MySpaceIM).
  *
  * Note that you can't send arbitrary PurpleAttentionType's, because there is
  * only a fixed set of attention commands.
+ *
  * @since 2.5.0
  */
 void purple_prpl_send_attention(PurpleConnection *gc, const char *who, guint type_code);
 
-/** Process an incoming attention message.
+/**
+ * Process an incoming attention message.
  *
  * @param gc The connection that received the attention message.
  * @param who Who requested your attention.
  * @param type_code An index into the prpl's attention_types list determining the type
- * 	of the attention request command to send.
+ *        of the attention request command to send.
+ *
  * @since 2.5.0
  */
 void purple_prpl_got_attention(PurpleConnection *gc, const char *who, guint type_code);
 
-/** Process an incoming attention message in a chat.
+/**
+ * Process an incoming attention message in a chat.
  *
  * @param gc The connection that received the attention message.
  * @param id The chat id.
  * @param who Who requested your attention.
  * @param type_code An index into the prpl's attention_types list determining the type
- * 	of the attention request command to send.
+ *        of the attention request command to send.
+ *
  * @since 2.5.0
  */
 void purple_prpl_got_attention_in_chat(PurpleConnection *gc, int id, const char *who, guint type_code);
============================================================
--- libpurple/server.h	1d9cf80aafa4d691fc0ac52e2254468b65bd1c20
+++ libpurple/server.h	e60a052326d73dab6400ee495790e7a09f155494
@@ -108,7 +108,7 @@ void serv_got_alias(PurpleConnection *gc
  * aliases are the aliases or display names that buddies set for themselves.
  *
  * @param gc The connection on which the alias was received.
- * @param who The screen name of the buddy whose alias was received.
+ * @param who The name of the buddy whose alias was received.
  * @param alias The alias that was received.
  */
 void purple_serv_got_private_alias(PurpleConnection *gc, const char *who, const char *alias);
============================================================
--- pidgin/gtkaccount.c	09fcf60bd2b35cbe5e4b459e9e13dc06511ad4c6
+++ pidgin/gtkaccount.c	1121d0198b4779e8993726024dd60de855d6a8ec
@@ -51,7 +51,7 @@ enum
 {
 	COLUMN_ICON,
 	COLUMN_BUDDYICON,
-	COLUMN_SCREENNAME,
+	COLUMN_USERNAME,
 	COLUMN_ENABLED,
 	COLUMN_PROTOCOL,
 	COLUMN_DATA,
@@ -78,7 +78,7 @@ typedef struct
 	GtkListStore *model;
 	GtkTreeIter drag_iter;
 
-	GtkTreeViewColumn *screenname_col;
+	GtkTreeViewColumn *username_col;
 
 } AccountsWindow;
 
@@ -115,7 +115,7 @@ typedef struct
 	GtkWidget *login_frame;
 	GtkWidget *protocol_menu;
 	GtkWidget *password_box;
-	GtkWidget *screenname_entry;
+	GtkWidget *username_entry;
 	GtkWidget *password_entry;
 	GtkWidget *alias_entry;
 	GtkWidget *remember_pass_check;
@@ -256,7 +256,7 @@ static gboolean
 }
 
 static gboolean
-screenname_focus_cb(GtkWidget *widget, GdkEventFocus *event, AccountPrefsDialog *dialog)
+username_focus_cb(GtkWidget *widget, GdkEventFocus *event, AccountPrefsDialog *dialog)
 {
 	GHashTable *table;
 	const char *label;
@@ -275,7 +275,7 @@ static void
 }
 
 static void
-screenname_changed_cb(GtkEntry *entry, AccountPrefsDialog *dialog)
+username_changed_cb(GtkEntry *entry, AccountPrefsDialog *dialog)
 {
 	if (dialog->ok_button)
 		gtk_widget_set_sensitive(dialog->ok_button,
@@ -290,7 +290,7 @@ static gboolean
 }
 
 static gboolean
-screenname_nofocus_cb(GtkWidget *widget, GdkEventFocus *event, AccountPrefsDialog *dialog)
+username_nofocus_cb(GtkWidget *widget, GdkEventFocus *event, AccountPrefsDialog *dialog)
 {
 	GdkColor color = {0, 34952, 35466, 34181};
 	GHashTable *table = NULL;
@@ -301,13 +301,13 @@ screenname_nofocus_cb(GtkWidget *widget,
 		label = g_hash_table_lookup(table, "login_label");
 
 		if (*gtk_entry_get_text(GTK_ENTRY(widget)) == '\0') {
-			/* We have to avoid hitting the screenname_changed_cb function
+			/* We have to avoid hitting the username_changed_cb function
 			 * because it enables buttons we don't want enabled yet ;)
 			 */
-			g_signal_handlers_block_by_func(widget, G_CALLBACK(screenname_changed_cb), dialog);
+			g_signal_handlers_block_by_func(widget, G_CALLBACK(username_changed_cb), dialog);
 			gtk_entry_set_text(GTK_ENTRY(widget), label);
 			/* Make sure we can hit it again */
-			g_signal_handlers_unblock_by_func(widget, G_CALLBACK(screenname_changed_cb), dialog);
+			g_signal_handlers_unblock_by_func(widget, G_CALLBACK(username_changed_cb), dialog);
 			gtk_widget_modify_text(widget, GTK_STATE_NORMAL, &color);
 		}
 
@@ -393,7 +393,7 @@ update_editable(PurpleConnection *gc, Ac
 
 	set = !(purple_account_is_connected(dialog->account) || purple_account_is_connecting(dialog->account));
 	gtk_widget_set_sensitive(dialog->protocol_menu, set);
-	gtk_widget_set_sensitive(dialog->screenname_entry, set);
+	gtk_widget_set_sensitive(dialog->username_entry, set);
 
 	for (l = dialog->user_split_entries ; l != NULL ; l = l->next)
 		gtk_widget_set_sensitive((GtkWidget *)l->data, set);
@@ -449,13 +449,13 @@ add_login_options(AccountPrefsDialog *di
 
 	gtk_widget_unref(dialog->protocol_menu);
 
-	/* Screen name */
-	dialog->screenname_entry = gtk_entry_new();
+	/* Username */
+	dialog->username_entry = gtk_entry_new();
 #if GTK_CHECK_VERSION(2,10,0)
-	g_object_set(G_OBJECT(dialog->screenname_entry), "truncate-multiline", TRUE, NULL);
+	g_object_set(G_OBJECT(dialog->username_entry), "truncate-multiline", TRUE, NULL);
 #endif
 
-	add_pref_box(dialog, vbox, _("_Username:"), dialog->screenname_entry);
+	add_pref_box(dialog, vbox, _("_Username:"), dialog->username_entry);
 
 	if (dialog->account != NULL)
 		username = g_strdup(purple_account_get_username(dialog->account));
@@ -468,17 +468,17 @@ add_login_options(AccountPrefsDialog *di
 		table = dialog->prpl_info->get_account_text_table(NULL);
 		label = g_hash_table_lookup(table, "login_label");
 
-		gtk_entry_set_text(GTK_ENTRY(dialog->screenname_entry), label);
-		g_signal_connect(G_OBJECT(dialog->screenname_entry), "focus-in-event",
-				G_CALLBACK(screenname_focus_cb), dialog);
-		g_signal_connect(G_OBJECT(dialog->screenname_entry), "focus-out-event",
-				G_CALLBACK(screenname_nofocus_cb), dialog);
-		gtk_widget_modify_text(dialog->screenname_entry, GTK_STATE_NORMAL, &color);
+		gtk_entry_set_text(GTK_ENTRY(dialog->username_entry), label);
+		g_signal_connect(G_OBJECT(dialog->username_entry), "focus-in-event",
+				G_CALLBACK(username_focus_cb), dialog);
+		g_signal_connect(G_OBJECT(dialog->username_entry), "focus-out-event",
+				G_CALLBACK(username_nofocus_cb), dialog);
+		gtk_widget_modify_text(dialog->username_entry, GTK_STATE_NORMAL, &color);
 		g_hash_table_destroy(table);
 	}
 
-	g_signal_connect(G_OBJECT(dialog->screenname_entry), "changed",
-					 G_CALLBACK(screenname_changed_cb), dialog);
+	g_signal_connect(G_OBJECT(dialog->username_entry), "changed",
+					 G_CALLBACK(username_changed_cb), dialog);
 
 	/* Do the user split thang */
 	if (dialog->prpl_info == NULL)
@@ -547,7 +547,7 @@ add_login_options(AccountPrefsDialog *di
 	}
 
 	if (username != NULL)
-		gtk_entry_set_text(GTK_ENTRY(dialog->screenname_entry), username);
+		gtk_entry_set_text(GTK_ENTRY(dialog->username_entry), username);
 
 	g_free(username);
 
@@ -590,7 +590,7 @@ add_login_options(AccountPrefsDialog *di
 		gtk_widget_hide(dialog->remember_pass_check);
 	}
 
-	/* Do not let the user change the protocol/screenname while connected. */
+	/* Do not let the user change the protocol/username while connected. */
 	update_editable(NULL, dialog);
 	purple_signal_connect(purple_connections_get_handle(), "signing-on", dialog,
 					G_CALLBACK(update_editable), dialog);
@@ -1193,7 +1193,7 @@ ok_account_prefs_cb(GtkWidget *w, Accoun
 	PurpleAccount *account;
 
 	/* Build the username string. */
-	username = g_strdup(gtk_entry_get_text(GTK_ENTRY(dialog->screenname_entry)));
+	username = g_strdup(gtk_entry_get_text(GTK_ENTRY(dialog->username_entry)));
 
 	if (dialog->prpl_info != NULL)
 	{
@@ -1933,7 +1933,7 @@ add_columns(GtkWidget *treeview, Account
 	gtk_tree_view_column_set_resizable(column, FALSE);
 	gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
 
-	/* Screen Name column */
+	/* Username column */
 	column = gtk_tree_view_column_new();
 	gtk_tree_view_column_set_title(column, _("Username"));
 	gtk_tree_view_column_set_resizable(column, TRUE);
@@ -1945,12 +1945,12 @@ add_columns(GtkWidget *treeview, Account
 	gtk_tree_view_column_add_attribute(column, renderer,
 					   "pixbuf", COLUMN_BUDDYICON);
 
-	/* Screen Name */
+	/* Username */
 	renderer = gtk_cell_renderer_text_new();
 	gtk_tree_view_column_pack_start(column, renderer, TRUE);
 	gtk_tree_view_column_add_attribute(column, renderer,
-					   "text", COLUMN_SCREENNAME);
-	dialog->screenname_col = column;
+					   "text", COLUMN_USERNAME);
+	dialog->username_col = column;
 
 
 	/* Protocol name */
@@ -2012,7 +2012,7 @@ set_account(GtkListStore *store, GtkTree
 	gtk_list_store_set(store, iter,
 			COLUMN_ICON, pixbuf,
 			COLUMN_BUDDYICON, buddyicon,
-			COLUMN_SCREENNAME, purple_account_get_username(account),
+			COLUMN_USERNAME, purple_account_get_username(account),
 			COLUMN_ENABLED, purple_account_get_enabled(account, PIDGIN_UI),
 			COLUMN_PROTOCOL, purple_account_get_protocol_name(account),
 			COLUMN_DATA, account,
@@ -2186,7 +2186,7 @@ create_accounts_list(AccountsWindow *dia
 	dialog->model = gtk_list_store_new(NUM_COLUMNS,
 					GDK_TYPE_PIXBUF,   /* COLUMN_ICON */
 					GDK_TYPE_PIXBUF,   /* COLUMN_BUDDYICON */
-					G_TYPE_STRING,     /* COLUMN_SCREENNAME */
+					G_TYPE_STRING,     /* COLUMN_USERNAME */
 					G_TYPE_BOOLEAN,    /* COLUMN_ENABLED */
 					G_TYPE_STRING,     /* COLUMN_PROTOCOL */
 					G_TYPE_POINTER     /* COLUMN_DATA */
============================================================
--- pidgin/gtkblist.h	21bd550747b7adb901cb8e294272f433bbb36344
+++ pidgin/gtkblist.h	efca207a1a71f21fe07349992dd088724dfec234
@@ -399,7 +399,7 @@ void pidgin_blist_set_headline(const cha
  *
  * @param buddy The buddy to return markup from
  * @param selected  Whether this buddy is selected. If TRUE, the markup will not change the color.
- * @param aliased  TRUE to return the appropriate alias of this buddy, FALSE to return its screenname and status information
+ * @param aliased  TRUE to return the appropriate alias of this buddy, FALSE to return its username and status information
  * @return The markup for this buddy
  *
  * @since 2.1.0
============================================================
--- pidgin/gtklog.c	488c4ae43d730f2a3707caf2d9c0a7a75ff7b320
+++ pidgin/gtklog.c	145805ca4e43bb75ee6f1180928a1106dcae1c13
@@ -45,7 +45,7 @@ struct log_viewer_hash_t {
 
 struct log_viewer_hash_t {
 	PurpleLogType type;
-	char *screenname;
+	char *buddyname;
 	PurpleAccount *account;
 	PurpleContact *contact;
 };
@@ -57,7 +57,7 @@ static guint log_viewer_hash(gconstpoint
 	if (viewer->contact != NULL)
 		return g_direct_hash(viewer->contact);
 
-	return g_str_hash(viewer->screenname) +
+	return g_str_hash(viewer->buddyname) +
 		g_str_hash(purple_account_get_username(viewer->account));
 }
 
@@ -80,9 +80,9 @@ static gboolean log_viewer_equal(gconstp
 			return FALSE;
 	}
 
-	normal = g_strdup(purple_normalize(a->account, a->screenname));
+	normal = g_strdup(purple_normalize(a->account, a->buddyname));
 	ret = (a->account == b->account) &&
-		!strcmp(normal, purple_normalize(b->account, b->screenname));
+		!strcmp(normal, purple_normalize(b->account, b->buddyname));
 	g_free(normal);
 
 	return ret;
@@ -209,7 +209,7 @@ static void destroy_cb(GtkWidget *w, gin
 		lv = g_hash_table_lookup(log_viewers, ht);
 		g_hash_table_remove(log_viewers, ht);
 
-		g_free(ht->screenname);
+		g_free(ht->buddyname);
 		g_free(ht);
 	} else
 		syslog_viewer = NULL;
@@ -556,7 +556,7 @@ static PidginLogViewer *display_log_view
 				if (!purple_prefs_get_bool("/purple/logging/log_chats"))
 					log_preferences = _("Chats will only be logged if the \"Log all chats\" preference is enabled.");
 			}
-			g_free(ht->screenname);
+			g_free(ht->buddyname);
 			g_free(ht);
 		}
 
@@ -681,27 +681,27 @@ static PidginLogViewer *display_log_view
 	return lv;
 }
 
-void pidgin_log_show(PurpleLogType type, const char *screenname, PurpleAccount *account) {
+void pidgin_log_show(PurpleLogType type, const char *buddyname, PurpleAccount *account) {
 	struct log_viewer_hash_t *ht;
 	PidginLogViewer *lv = NULL;
-	const char *name = screenname;
+	const char *name = buddyname;
 	char *title;
 	GdkPixbuf *prpl_icon;
 
 	g_return_if_fail(account != NULL);
-	g_return_if_fail(screenname != NULL);
+	g_return_if_fail(buddyname != NULL);
 
 	ht = g_new0(struct log_viewer_hash_t, 1);
 
 	ht->type = type;
-	ht->screenname = g_strdup(screenname);
+	ht->buddyname = g_strdup(buddyname);
 	ht->account = account;
 
 	if (log_viewers == NULL) {
 		log_viewers = g_hash_table_new(log_viewer_hash, log_viewer_equal);
 	} else if ((lv = g_hash_table_lookup(log_viewers, ht))) {
 		gtk_window_present(GTK_WINDOW(lv->window));
-		g_free(ht->screenname);
+		g_free(ht->buddyname);
 		g_free(ht);
 		return;
 	}
@@ -709,7 +709,7 @@ void pidgin_log_show(PurpleLogType type,
 	if (type == PURPLE_LOG_CHAT) {
 		PurpleChat *chat;
 
-		chat = purple_blist_find_chat(account, screenname);
+		chat = purple_blist_find_chat(account, buddyname);
 		if (chat != NULL)
 			name = purple_chat_get_name(chat);
 
@@ -717,7 +717,7 @@ void pidgin_log_show(PurpleLogType type,
 	} else {
 		PurpleBuddy *buddy;
 
-		buddy = purple_find_buddy(account, screenname);
+		buddy = purple_find_buddy(account, buddyname);
 		if (buddy != NULL)
 			name = purple_buddy_get_contact_alias(buddy);
 
@@ -726,9 +726,9 @@ void pidgin_log_show(PurpleLogType type,
 
 	prpl_icon = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_MEDIUM);
 
-	display_log_viewer(ht, purple_log_get_logs(type, screenname, account),
+	display_log_viewer(ht, purple_log_get_logs(type, buddyname, account),
 			title, gtk_image_new_from_pixbuf(prpl_icon),
-			purple_log_get_total_size(type, screenname, account));
+			purple_log_get_total_size(type, buddyname, account));
 
 	if (prpl_icon)
 		g_object_unref(prpl_icon);
============================================================
--- pidgin/gtklog.h	37ce48cab5a824543c24ab47a1150a32f7effc90
+++ pidgin/gtklog.h	beebb1eb384edcdea9fb0073e342b726f7dd685b
@@ -53,7 +53,7 @@ struct _PidginLogViewer {
 
 
 
-void pidgin_log_show(PurpleLogType type, const char *screenname, PurpleAccount *account);
+void pidgin_log_show(PurpleLogType type, const char *buddyname, PurpleAccount *account);
 void pidgin_log_show_contact(PurpleContact *contact);
 
 void pidgin_syslog_show(void);
============================================================
--- pidgin/gtksavedstatuses.c	c52fc4fc055fa1ee9aa31829c9ca2a00d94a245d
+++ pidgin/gtksavedstatuses.c	2f28c8feb6dfef962f4eea7d5a892b9fe9eb4761
@@ -76,7 +76,7 @@ enum
 	STATUS_EDITOR_COLUMN_WINDOW,
 	STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS,
 	STATUS_EDITOR_COLUMN_ICON,
-	STATUS_EDITOR_COLUMN_SCREENNAME,
+	STATUS_EDITOR_COLUMN_USERNAME,
 	/** A hidden column containing the ID of this PurpleStatusType. */
 	STATUS_EDITOR_COLUMN_STATUS_ID,
 	STATUS_EDITOR_COLUMN_STATUS_NAME,
@@ -1007,7 +1007,7 @@ status_editor_add_columns(StatusEditor *
 	g_signal_connect(G_OBJECT(renderer), "toggled",
 			 G_CALLBACK(status_editor_substatus_cb), dialog);
 
-	/* Screen Name column */
+	/* Username column */
 	column = gtk_tree_view_column_new();
 	gtk_tree_view_column_set_resizable(column, TRUE);
 	gtk_tree_view_column_set_title(column, _("Username"));
@@ -1020,11 +1020,11 @@ status_editor_add_columns(StatusEditor *
 	gtk_tree_view_column_add_attribute(column, renderer, "pixbuf",
 									   STATUS_EDITOR_COLUMN_ICON);
 
-	/* Screen Name */
+	/* Username */
 	renderer = gtk_cell_renderer_text_new();
 	gtk_tree_view_column_pack_start(column, renderer, TRUE);
 	gtk_tree_view_column_add_attribute(column, renderer, "text",
-									   STATUS_EDITOR_COLUMN_SCREENNAME);
+									   STATUS_EDITOR_COLUMN_USERNAME);
 
 	/* Status column */
 	column = gtk_tree_view_column_new();
@@ -1086,7 +1086,7 @@ status_editor_set_account(GtkListStore *
 			STATUS_EDITOR_COLUMN_ACCOUNT, account,
 			STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS, (substatus != NULL),
 			STATUS_EDITOR_COLUMN_ICON, pixbuf,
-			STATUS_EDITOR_COLUMN_SCREENNAME, purple_account_get_username(account),
+			STATUS_EDITOR_COLUMN_USERNAME, purple_account_get_username(account),
 			STATUS_EDITOR_COLUMN_STATUS_ID, id,
 			STATUS_EDITOR_COLUMN_STATUS_NAME, name,
 			STATUS_EDITOR_COLUMN_STATUS_MESSAGE, message,
============================================================
--- pidgin/gtkutils.c	329699a4fd9bf70a6492ee780c584cb3db7b2a0f
+++ pidgin/gtkutils.c	28b9a07115f094de2fa584691923e9a453ae1fd3
@@ -1927,7 +1927,7 @@ destroy_completion_data(GtkWidget *w, Pi
 #endif /* !NEW_STYLE_COMPLETION */
 
 #ifdef NEW_STYLE_COMPLETION
-static gboolean screenname_completion_match_func(GtkEntryCompletion *completion,
+static gboolean buddyname_completion_match_func(GtkEntryCompletion *completion,
 		const gchar *key, GtkTreeIter *iter, gpointer user_data)
 {
 	GtkTreeModel *model;
@@ -1960,7 +1960,7 @@ static gboolean screenname_completion_ma
 	return FALSE;
 }
 
-static gboolean screenname_completion_match_selected_cb(GtkEntryCompletion *completion,
+static gboolean buddyname_completion_match_selected_cb(GtkEntryCompletion *completion,
 		GtkTreeModel *model, GtkTreeIter *iter, PidginCompletionData *data)
 {
 	GValue val;
@@ -1986,22 +1986,22 @@ static void
 }
 
 static void
-add_screenname_autocomplete_entry(GtkListStore *store, const char *buddy_alias, const char *contact_alias,
-								  const PurpleAccount *account, const char *screenname)
+add_buddyname_autocomplete_entry(GtkListStore *store, const char *buddy_alias, const char *contact_alias,
+								  const PurpleAccount *account, const char *buddyname)
 {
 	GtkTreeIter iter;
 	gboolean completion_added = FALSE;
-	gchar *normalized_screenname;
+	gchar *normalized_buddyname;
 	gchar *tmp;
 
-	tmp = g_utf8_normalize(screenname, -1, G_NORMALIZE_DEFAULT);
-	normalized_screenname = g_utf8_casefold(tmp, -1);
+	tmp = g_utf8_normalize(buddyname, -1, G_NORMALIZE_DEFAULT);
+	normalized_buddyname = g_utf8_casefold(tmp, -1);
 	g_free(tmp);
 
 	/* There's no sense listing things like: 'xxx "xxx"'
-	   when the screenname and buddy alias match. */
-	if (buddy_alias && strcmp(buddy_alias, screenname)) {
-		char *completion_entry = g_strdup_printf("%s \"%s\"", screenname, buddy_alias);
+	   when the name and buddy alias match. */
+	if (buddy_alias && strcmp(buddy_alias, buddyname)) {
+		char *completion_entry = g_strdup_printf("%s \"%s\"", buddyname, buddy_alias);
 		char *tmp2 = g_utf8_normalize(buddy_alias, -1, G_NORMALIZE_DEFAULT);
 
 		tmp = g_utf8_casefold(tmp2, -1);
@@ -2010,8 +2010,8 @@ add_screenname_autocomplete_entry(GtkLis
 		gtk_list_store_append(store, &iter);
 		gtk_list_store_set(store, &iter,
 				0, completion_entry,
-				1, screenname,
-				2, normalized_screenname,
+				1, buddyname,
+				2, normalized_buddyname,
 				3, tmp,
 				4, account,
 				-1);
@@ -2021,12 +2021,12 @@ add_screenname_autocomplete_entry(GtkLis
 	}
 
 	/* There's no sense listing things like: 'xxx "xxx"'
-	   when the screenname and contact alias match. */
-	if (contact_alias && strcmp(contact_alias, screenname)) {
+	   when the name and contact alias match. */
+	if (contact_alias && strcmp(contact_alias, buddyname)) {
 		/* We don't want duplicates when the contact and buddy alias match. */
 		if (!buddy_alias || strcmp(contact_alias, buddy_alias)) {
 			char *completion_entry = g_strdup_printf("%s \"%s\"",
-							screenname, contact_alias);
+							buddyname, contact_alias);
 			char *tmp2 = g_utf8_normalize(contact_alias, -1, G_NORMALIZE_DEFAULT);
 
 			tmp = g_utf8_casefold(tmp2, -1);
@@ -2035,8 +2035,8 @@ add_screenname_autocomplete_entry(GtkLis
 			gtk_list_store_append(store, &iter);
 			gtk_list_store_set(store, &iter,
 					0, completion_entry,
-					1, screenname,
-					2, normalized_screenname,
+					1, buddyname,
+					2, normalized_buddyname,
 					3, tmp,
 					4, account,
 					-1);
@@ -2047,18 +2047,18 @@ add_screenname_autocomplete_entry(GtkLis
 	}
 
 	if (completion_added == FALSE) {
-		/* Add the buddy's screenname. */
+		/* Add the buddy's name. */
 		gtk_list_store_append(store, &iter);
 		gtk_list_store_set(store, &iter,
-				0, screenname,
-				1, screenname,
-				2, normalized_screenname,
+				0, buddyname,
+				1, buddyname,
+				2, normalized_buddyname,
 				3, NULL,
 				4, account,
 				-1);
 	}
 
-	g_free(normalized_screenname);
+	g_free(normalized_buddyname);
 }
 #endif /* NEW_STYLE_COMPLETION */
 
@@ -2067,8 +2067,8 @@ static void get_log_set_name(PurpleLogSe
 	PidginFilterBuddyCompletionEntryFunc filter_func = data->filter_func;
 	gpointer user_data = data->filter_func_user_data;
 
- 	/* 1. Don't show buddies because we will have gotten them already.
- 	 * 2. The boxes that use this autocomplete code handle only IMs. */
+	/* 1. Don't show buddies because we will have gotten them already.
+	 * 2. The boxes that use this autocomplete code handle only IMs. */
 	if (!set->buddy && set->type == PURPLE_LOG_IM) {
 		PidginBuddyCompletionEntry entry;
 		entry.is_buddy = FALSE;
@@ -2076,7 +2076,7 @@ static void get_log_set_name(PurpleLogSe
 
 		if (filter_func(&entry, user_data)) {
 #ifdef NEW_STYLE_COMPLETION
-			add_screenname_autocomplete_entry(data->store,
+			add_buddyname_autocomplete_entry(data->store,
 												NULL, NULL, set->account, set->name);
 #else
 			/* Steal the name for the GCompletion. */
@@ -2122,7 +2122,7 @@ add_completion_list(PidginCompletionData
 
 				if (filter_func(&entry, user_data)) {
 #ifdef NEW_STYLE_COMPLETION
-					add_screenname_autocomplete_entry(data->store,
+					add_buddyname_autocomplete_entry(data->store,
 														((PurpleContact *)cnode)->alias,
 														purple_buddy_get_contact_alias(entry.entry.buddy),
 														entry.entry.buddy->account,
@@ -2153,7 +2153,7 @@ static void
 }
 
 static void
-screenname_autocomplete_destroyed_cb(GtkWidget *widget, gpointer data)
+buddyname_autocomplete_destroyed_cb(GtkWidget *widget, gpointer data)
 {
 	g_free(data);
 	purple_signals_disconnect_by_handle(widget);
@@ -2165,15 +2165,17 @@ repopulate_autocomplete(gpointer somethi
 	add_completion_list(data);
 }
 
-
 void
 pidgin_setup_screenname_autocomplete_with_filter(GtkWidget *entry, GtkWidget *accountopt, PidginFilterBuddyCompletionEntryFunc filter_func, gpointer user_data)
 {
 	PidginCompletionData *data;
 
 #ifdef NEW_STYLE_COMPLETION
-	/* Store the displayed completion value, the screenname, the UTF-8 normalized & casefolded screenname,
-	 * the UTF-8 normalized & casefolded value for comparison, and the account. */
+	/*
+	 * Store the displayed completion value, the buddy name, the UTF-8
+	 * normalized & casefolded buddy name, the UTF-8 normalized &
+	 * casefolded value for comparison, and the account.
+	 */
 	GtkListStore *store;
 
 	GtkEntryCompletion *completion;
@@ -2194,15 +2196,15 @@ pidgin_setup_screenname_autocomplete_wit
 
 	add_completion_list(data);
 
-	/* Sort the completion list by screenname. */
+	/* Sort the completion list by buddy name */
 	gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store),
 	                                     1, GTK_SORT_ASCENDING);
 
 	completion = gtk_entry_completion_new();
-	gtk_entry_completion_set_match_func(completion, screenname_completion_match_func, NULL, NULL);
+	gtk_entry_completion_set_match_func(completion, buddyname_completion_match_func, NULL, NULL);
 
 	g_signal_connect(G_OBJECT(completion), "match-selected",
-		G_CALLBACK(screenname_completion_match_selected_cb), data);
+		G_CALLBACK(buddyname_completion_match_selected_cb), data);
 
 	gtk_entry_set_completion(GTK_ENTRY(entry), completion);
 	g_object_unref(completion);
@@ -2249,7 +2251,7 @@ pidgin_setup_screenname_autocomplete_wit
 	purple_signal_connect(purple_accounts_get_handle(), "account-removed", entry,
 						PURPLE_CALLBACK(repopulate_autocomplete), data);
 
-	g_signal_connect(G_OBJECT(entry), "destroy", G_CALLBACK(screenname_autocomplete_destroyed_cb), data);
+	g_signal_connect(G_OBJECT(entry), "destroy", G_CALLBACK(buddyname_autocomplete_destroyed_cb), data);
 }
 
 gboolean
============================================================
--- pidgin/gtkutils.h	f882d6c575115143ad3280f617c727a3b2e8c597
+++ pidgin/gtkutils.h	8aa093d969920d19826fc2e939c7770ade950026
@@ -355,7 +355,7 @@ void pidgin_account_option_menu_set_sele
  *
  * @param entry       The GtkEntry on which to setup autocomplete.
  * @param optmenu     A menu for accounts, returned by gaim_gtk_account_option_menu_new().
- *                    If @a optmenu is not @c NULL, it'll be updated when a screenname is chosen
+ *                    If @a optmenu is not @c NULL, it'll be updated when a username is chosen
  *                    from the autocomplete list.
  * @param filter_func A function for checking if an autocomplete entry
  *                    should be shown. This can be @c NULL.
@@ -364,7 +364,7 @@ void pidgin_setup_screenname_autocomplet
 void pidgin_setup_screenname_autocomplete_with_filter(GtkWidget *entry, GtkWidget *optmenu, PidginFilterBuddyCompletionEntryFunc filter_func, gpointer user_data);
 
 /**
- * The default filter function for screenname autocomplete.
+ * The default filter function for username autocomplete.
  *
  * @param completion_entry The completion entry to filter.
  * @param all_accounts  If this is @c FALSE, only the autocompletion entries
@@ -385,9 +385,9 @@ gboolean pidgin_screenname_autocomplete_
  * @param entry     The GtkEntry on which to setup autocomplete.
  * @param optmenu   A menu for accounts, returned by
  *                  pidgin_account_option_menu_new().  If @a optmenu is not @c
- *                  NULL, it'll be updated when a screenname is chosen from the
+ *                  NULL, it'll be updated when a username is chosen from the
  *                  autocomplete list.
- * @param all       Whether to include screennames from disconnected accounts.
+ * @param all       Whether to include usernames from disconnected accounts.
  */
 void pidgin_setup_screenname_autocomplete(GtkWidget *entry, GtkWidget *optmenu, gboolean all);
 
============================================================
--- pidgin/plugins/gevolution/gevo-util.c	e3ed813920d7d205f9660ab312e7a3ed78254e9e
+++ pidgin/plugins/gevolution/gevo-util.c	3a606b46c418b6bafcd7bd2387b27dee6335561d
@@ -27,13 +27,13 @@ gevo_add_buddy(PurpleAccount *account, c
 
 void
 gevo_add_buddy(PurpleAccount *account, const char *group_name,
-			   const char *screenname, const char *alias)
+			   const char *buddy_name, const char *alias)
 {
 	PurpleConversation *conv = NULL;
 	PurpleBuddy *buddy;
 	PurpleGroup *group;
 
-	conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, screenname, account);
+	conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, buddy_name, account);
 
 	if ((group = purple_find_group(group_name)) == NULL)
 	{
@@ -41,7 +41,7 @@ gevo_add_buddy(PurpleAccount *account, c
 		purple_blist_add_group(group, NULL);
 	}
 
-	buddy = purple_buddy_new(account, screenname, alias);
+	buddy = purple_buddy_new(account, buddy_name, alias);
 	purple_blist_add_buddy(buddy, NULL, group, NULL);
 	purple_account_add_buddy(account, buddy);
 
============================================================
--- pidgin/plugins/gevolution/gevolution.c	44abc6d49c42a31672b2e5ad9af14bac4d1e43c0
+++ pidgin/plugins/gevolution/gevolution.c	7a541097e2715944771c56abdf37ee8cefef0c39
@@ -52,7 +52,7 @@ enum
 {
 	COLUMN_AUTOADD,
 	COLUMN_ICON,
-	COLUMN_SCREENNAME,
+	COLUMN_USERNAME,
 	COLUMN_DATA,
 	NUM_COLUMNS
 };
@@ -463,11 +463,11 @@ get_config_frame(PurplePlugin *plugin)
 	gtk_tree_view_column_add_attribute(column, renderer,
 									   "pixbuf", COLUMN_ICON);
 
-	/* Screenname */
+	/* Username */
 	renderer = gtk_cell_renderer_text_new();
 	gtk_tree_view_column_pack_start(column, renderer, TRUE);
 	gtk_tree_view_column_add_attribute(column, renderer,
-									   "text", COLUMN_SCREENNAME);
+									   "text", COLUMN_USERNAME);
 
 
 	/* Populate */
@@ -489,7 +489,7 @@ get_config_frame(PurplePlugin *plugin)
 						   purple_account_get_bool(account, "gevo-autoadd",
 												 FALSE),
 						   COLUMN_ICON, pixbuf,
-						   COLUMN_SCREENNAME,
+						   COLUMN_USERNAME,
 						   purple_account_get_username(account),
 						   COLUMN_DATA, account,
 						   -1);
============================================================
--- pidgin/plugins/gevolution/new_person_dialog.c	3062c701ee99b08ac29b3499997f9b8481edc8bf
+++ pidgin/plugins/gevolution/new_person_dialog.c	267d05fb069ce5862635262299f0275434d8588e
@@ -67,7 +67,7 @@ static void
 }
 
 static void
-screenname_changed_cb(GtkEntry *entry, GevoNewPersonDialog *dialog)
+username_changed_cb(GtkEntry *entry, GevoNewPersonDialog *dialog)
 {
 	gtk_widget_set_sensitive(dialog->add_button,
 							 *gtk_entry_get_text(entry) != '\0');
@@ -85,7 +85,7 @@ add_cb(GtkWidget *w, GevoNewPersonDialog
 add_cb(GtkWidget *w, GevoNewPersonDialog *dialog)
 {
 	EContact *contact = NULL;
-	const char *screenname;
+	const char *username;
 	const char *firstname;
 	const char *lastname;
 	const char *email;
@@ -96,9 +96,9 @@ add_cb(GtkWidget *w, GevoNewPersonDialog
 	char *full_name = NULL;
 
 	if (dialog->person_only)
-		screenname = dialog->buddy->name;
+		username = dialog->buddy->name;
 	else
-		screenname = gtk_entry_get_text(GTK_ENTRY(dialog->screenname));
+		username = gtk_entry_get_text(GTK_ENTRY(dialog->username));
 
 	firstname  = gtk_entry_get_text(GTK_ENTRY(dialog->firstname));
 	lastname   = gtk_entry_get_text(GTK_ENTRY(dialog->lastname));
@@ -143,7 +143,7 @@ add_cb(GtkWidget *w, GevoNewPersonDialog
 
 		if (!strcmp(im_service, "prpl-oscar"))
 		{
-			if (isdigit(*screenname))
+			if (isdigit(*username))
 				field = E_CONTACT_IM_ICQ;
 			else
 				field = E_CONTACT_IM_AIM;
@@ -163,7 +163,7 @@ add_cb(GtkWidget *w, GevoNewPersonDialog
 
 		if (field > 0)
 		{
-			GList *list = g_list_append(NULL, g_strdup(screenname));
+			GList *list = g_list_append(NULL, g_strdup(username));
 
 			e_contact_set(contact, field, list);
 
@@ -203,7 +203,7 @@ add_cb(GtkWidget *w, GevoNewPersonDialog
 
 		group_name = pidgin_text_combo_box_entry_get_text(dialog->group_combo);
 
-		gevo_add_buddy(dialog->account, group_name, screenname, full_name);
+		gevo_add_buddy(dialog->account, group_name, username, full_name);
 	}
 
 	if (name != NULL)
@@ -289,15 +289,15 @@ gevo_new_person_dialog_show(EBook *book,
 											 NULL, dialog);
 		add_pref_box(sg, vbox, _("Account type:"), dialog->accounts_menu);
 
-		/* Screen Name */
-		dialog->screenname = gtk_entry_new();
-		add_pref_box(sg, vbox, _("Username:"), dialog->screenname);
+		/* Username */
+		dialog->username = gtk_entry_new();
+		add_pref_box(sg, vbox, _("Username:"), dialog->username);
 
 		if (username != NULL)
-			gtk_entry_set_text(GTK_ENTRY(dialog->screenname), username);
+			gtk_entry_set_text(GTK_ENTRY(dialog->username), username);
 
-		g_signal_connect(G_OBJECT(dialog->screenname), "changed",
-						 G_CALLBACK(screenname_changed_cb), dialog);
+		g_signal_connect(G_OBJECT(dialog->username), "changed",
+						 G_CALLBACK(username_changed_cb), dialog);
 
 		/* Group */
 		dialog->group_combo = pidgin_text_combo_box_entry_new(NULL,
============================================================
--- pidgin/plugins/perl/common/GtkLog.xs	a863426ab3c376cb9bd9e60db9927053d6690efc
+++ pidgin/plugins/perl/common/GtkLog.xs	88be88359531ed16fbec95548eb8df6b47602ab8
@@ -7,9 +7,9 @@ void
 pidgin_log_get_handle()
 
 void
-pidgin_log_show(type, screenname, account)
+pidgin_log_show(type, buddyname, account)
 	Purple::LogType type
-	const char * screenname
+	const char * buddyname
 	Purple::Account account
 
 void


More information about the Commits mailing list