Index: account.c
===================================================================
--- account.c	(revision d52111a7b05657e4a4fa8417e6655389a50769cf)
+++ account.c	(revision 30ce1ced040c44c528d0a6e6e9c6b10a1caf1052)
@@ -95,8 +95,13 @@
 		g_free( acc->server );
 		if( *value )
+		{
 			acc->server = g_strdup( value );
+			return value;
+		}
 		else
+		{
 			acc->server = NULL;
-		return value;
+			return g_strdup( set->def );
+		}
 	}
 	else if( strcmp( set->key, "auto_connect" ) == 0 )
Index: doc/user-guide/commands.xml
===================================================================
--- doc/user-guide/commands.xml	(revision d52111a7b05657e4a4fa8417e6655389a50769cf)
+++ doc/user-guide/commands.xml	(revision 30ce1ced040c44c528d0a6e6e9c6b10a1caf1052)
@@ -17,5 +17,5 @@
 
 		<bitlbee-command name="add">
-			<syntax>account add &lt;protocol&gt; &lt;username&gt; &lt;password&gt; [&lt;server&gt;]</syntax>
+			<syntax>account add &lt;protocol&gt; &lt;username&gt; &lt;password&gt;</syntax>
 
 			<description>
@@ -26,5 +26,5 @@
 			
 			<bitlbee-command name="jabber">
-				<syntax>account add jabber &lt;handle@server.tld&gt; &lt;password&gt; [&lt;servertag&gt;]</syntax>
+				<syntax>account add jabber &lt;handle@server.tld&gt; &lt;password&gt;</syntax>
 
 				<description>
@@ -50,14 +50,14 @@
 			
 			<bitlbee-command name="oscar">
-				<syntax>account add oscar &lt;handle&gt; &lt;password&gt; [&lt;servername&gt;]</syntax>
+				<syntax>account add oscar &lt;handle&gt; &lt;password&gt;</syntax>
 
 				<description>
 					<para>
-						Specifying a server is required for OSCAR, since OSCAR can be used for both ICQ- and AIM-connections. Although these days it's supposed to be possible to connect to ICQ via AIM-servers and vice versa, we like to stick with this separation for now. For ICQ connections, the servername is <emphasis>login.icq.com</emphasis>, for AIM connections it's <emphasis>login.oscar.aol.com</emphasis>.
+						OSCAR is the protocol used to connect to AIM and/or ICQ. The servers will automatically detect if you're using a numeric or non-numeric username so there's no need to tell which network you want to connect to.
 					</para>
 				</description>
 
 				<ircexample>
-					<ircline nick="wilmer">account add oscar 72696705 hobbelmeeuw login.icq.com</ircline>
+					<ircline nick="wilmer">account add oscar 72696705 hobbelmeeuw</ircline>
 					<ircline nick="root">Account successfully added</ircline>
 				</ircexample>
@@ -595,5 +595,5 @@
 		<description>
 			<para>
-				Can be set for Jabber- and OSCAR-connections. For OSCAR, this must be set to <emphasis>login.icq.com</emphasis> if it's an ICQ connection, or <emphasis>login.oscar.aol.com</emphasis> if it's an AIM connection. For Jabber, you have to set this if the servername isn't equal to the part after the @ in the Jabber handle.
+				Can be set for Jabber- and OSCAR-connections. For Jabber, you might have to set this if the servername isn't equal to the part after the @ in the Jabber handle. For OSCAR this shouldn't be necessary anymore in recent BitlBee versions.
 			</para>
 		</description>
Index: doc/user-guide/quickstart.xml
===================================================================
--- doc/user-guide/quickstart.xml	(revision d52111a7b05657e4a4fa8417e6655389a50769cf)
+++ doc/user-guide/quickstart.xml	(revision 30ce1ced040c44c528d0a6e6e9c6b10a1caf1052)
@@ -38,10 +38,10 @@
 
 <ircexample>
-	<ircline nick="you">account add oscar 72696705 QuickStart login.icq.com</ircline>
+	<ircline nick="you">account add jabber bitlbee@jabber.org QuickStart</ircline>
 	<ircline nick="root">Account successfully added</ircline>
 </ircexample>
 
 <para>
-Other available IM protocols are jabber, msn, and yahoo. Oscar is the protocol used by ICQ and AOL. For oscar, you need to specify the IM-server as a fourth argument (for msn and yahoo there is no fourth argument). For AOL Instant Messenger, the server name is <emphasis>login.oscar.aol.com</emphasis>. For ICQ, the server name is <emphasis>login.icq.com</emphasis>.
+Other available IM protocols are msn, oscar, and yahoo. Oscar is the protocol used by ICQ and AOL.
 </para>
 
Index: protocols/oscar/aim.h
===================================================================
--- protocols/oscar/aim.h	(revision d52111a7b05657e4a4fa8417e6655389a50769cf)
+++ protocols/oscar/aim.h	(revision 30ce1ced040c44c528d0a6e6e9c6b10a1caf1052)
@@ -94,5 +94,5 @@
  *
  */
-#define AIM_DEFAULT_LOGIN_SERVER "login.oscar.aol.com"
+#define AIM_DEFAULT_LOGIN_SERVER "login.messaging.aol.com"
 #define AIM_LOGIN_PORT 5190
 
Index: protocols/oscar/oscar.c
===================================================================
--- protocols/oscar/oscar.c	(revision d52111a7b05657e4a4fa8417e6655389a50769cf)
+++ protocols/oscar/oscar.c	(revision 30ce1ced040c44c528d0a6e6e9c6b10a1caf1052)
@@ -341,5 +341,5 @@
 	set_t *s;
 	
-	s = set_add( &acc->set, "server", NULL, set_eval_account, acc );
+	s = set_add( &acc->set, "server", AIM_DEFAULT_LOGIN_SERVER, set_eval_account, acc );
 	s->flags |= ACC_SET_NOSAVE | ACC_SET_OFFLINE_ONLY;
 	
@@ -356,13 +356,5 @@
 	struct oscar_data *odata = ic->proto_data = g_new0(struct oscar_data, 1);
 
-	if (isdigit(acc->user[0])) {
-		odata->icq = TRUE;
-		/* This is odd but it's necessary for a proper do_import and do_export.
-		   We don't do those anymore, but let's stick with it, just in case
-		   it accidentally fixes something else too... </bitlbee> */
-		/* ic->acc->pass[8] = 0;
-		   Not touching this anymore now that it belongs to account_t!
-		   Let's hope nothing will break. ;-) */
-	} else {
+	if (!isdigit(acc->user[0])) {
 		ic->flags |= OPT_DOES_HTML;
 	}
@@ -385,15 +377,4 @@
 	}
 	
-	if (acc->server == NULL) {
-		imcb_error(ic, "No servername specified");
-		imc_logout(ic, FALSE);
-		return;
-	}
-	
-	if (g_strcasecmp(acc->server, "login.icq.com") != 0 &&
-	    g_strcasecmp(acc->server, "login.oscar.aol.com") != 0) {
-		imcb_log(ic, "Warning: Unknown OSCAR server: `%s'. Please review your configuration if the connection fails.",acc->server);
-	}
-	
 	imcb_log(ic, _("Signon: %s"), ic->acc->user);
 
@@ -402,5 +383,6 @@
 
 	conn->status |= AIM_CONN_STATUS_INPROGRESS;
-	conn->fd = proxy_connect(acc->server, AIM_LOGIN_PORT, oscar_login_connect, ic);
+	conn->fd = proxy_connect(set_getstr(&acc->set, "server"),
+	                         AIM_LOGIN_PORT, oscar_login_connect, ic);
 	if (conn->fd < 0) {
 		imcb_error(ic, _("Couldn't connect to host"));
Index: root_commands.c
===================================================================
--- root_commands.c	(revision d52111a7b05657e4a4fa8417e6655389a50769cf)
+++ root_commands.c	(revision 30ce1ced040c44c528d0a6e6e9c6b10a1caf1052)
@@ -199,5 +199,5 @@
 		break;
 	default:
-		irc_usermsg( irc, "Error: '%d'", status );
+		irc_usermsg( irc, "Error: `%d'", status );
 		break;
 	}
@@ -234,5 +234,9 @@
 		a = account_add( irc, prpl, cmd[3], cmd[4] );
 		if( cmd[5] )
+		{
+			irc_usermsg( irc, "Warning: Passing a servername/other flags to `account add' "
+			                  "is now deprecated. Use `account set' instead." );
 			set_setstr( &a->set, "server", cmd[5] );
+		}
 		
 		irc_usermsg( irc, "Account successfully added" );
@@ -317,5 +321,5 @@
 			else
 			{
-				irc_usermsg( irc, "No accounts known. Use 'account add' to add one." );
+				irc_usermsg( irc, "No accounts known. Use `account add' to add one." );
 			}
 		}
