diff --git a/exec/load/ircd/core.js b/exec/load/ircd/core.js
index 1824106be09d01ae887f3c6685255dc1939bd56c..ba8ebce9575eeae222655b00ee6b0ab5e73aa7ae 100644
--- a/exec/load/ircd/core.js
+++ b/exec/load/ircd/core.js
@@ -2754,26 +2754,43 @@ function IRCClient_check_timeout() {
 
 function IRCClient_finalize_server_connect(states) {
 	var i;
+	var pass_sent = false;
 
 	HCC_Counter++;
-	gnotice(format("Link with %s (%s) established, states: %s",
+	gnotice(format("Link established with %s (%s:%u), Sock (%s:%u), Class %u.",
 		this.nick,
 		this.hostname,
-		states
+		this.socket.remote_ip_address,
+		this.socket.remote_port,
+		this.ircclass
 	));
 	if (server.client_update !== undefined)
 		server.client_update(this.socket, this.nick, this.hostname);
 	if (!this.socket.outbound) {
 		for (i in CLines) {
-			if(wildmatch(this.nick,CLines[i].servername)) {
+			if (this.nick == CLines[i].servername) {
 				this.rawout(format(
 					"PASS %s :%s",
 					CLines[i].password,
 					states
 				));
+				pass_sent = true;
 				break;
 			}
 		}
+		/* FIXME: Might want to have this behaviour able to be toggled on/off globally */
+		if (!pass_sent) {
+			for (i in CLines) {
+				if(wildmatch(this.nick,CLines[i].servername)) {
+					this.rawout(format(
+						"PASS %s :%s",
+						CLines[i].password,
+						states
+					));
+					break;
+				}
+			}
+		}
 		this.rawout("CAPAB " + SERVER_CAPAB);
 		this.rawout("SERVER " + ServerName + " 1 :" + ServerDesc);
 	}
diff --git a/exec/load/ircd/unregistered.js b/exec/load/ircd/unregistered.js
index f8f750e54eddbed9515d7b6292226634f853a5d8..14e5e09860835833fe048976f42fb997a6f7b064 100644
--- a/exec/load/ircd/unregistered.js
+++ b/exec/load/ircd/unregistered.js
@@ -473,6 +473,9 @@ function Register_Unregistered_Local_Server(unreg, p, nline) {
 	if (typeof Servers[p[0].toLowerCase()] !== 'undefined')
 		throw "Trying to overwrite existing server in Register_Unregistered_Local_Server()";
 
+	if (typeof Local_Servers[p[0].toLowerCase()] !== 'undefined')
+		throw "Trying to overwrite existing LOCAL server in Register_Unregistered_Local_Server()";
+
 	Servers[p[0].toLowerCase()] = new IRC_Server();
 	s = Servers[p[0].toLowerCase()];
 	Local_Servers[p[0].toLowerCase()] = s;