diff --git a/exec/ircd.js b/exec/ircd.js
index f619565ee274246a17ee10af94765f79780fe62a..3fb9d30aa6a7988d97efc97d438a57494e60fe97 100644
--- a/exec/ircd.js
+++ b/exec/ircd.js
@@ -4029,12 +4029,16 @@ function IRCClient_server_commands(origin, command, cmdline) {
 			this.ircout("PONG " + servername + " :" + cmd[1]);
 			break;
 		case "PONG":
-			if (cmd[2] && !match_irc_mask(servername, cmd[2])) {
-				var dest_server = searchbyserver(cmd[2]);
-				if (!dest_server)
+			if (cmd[2]) {
+				if (cmd[2][0] == ":")
+					cmd[2] = cmd[2].slice(1);
+				if (!match_irc_mask(servername, cmd[2])) {
+					var dest_server = searchbyserver(cmd[2]);
+					if (!dest_server)
+						break;
+					dest_server.rawout(":" + ThisOrigin.nick + " PONG " + cmd[1] + " " + dest_server.nick);
 					break;
-				dest_server.rawout(":" + ThisOrigin.nick + " PONG " + cmd[1] + " " + dest_server.nick);
-				break;
+				}
 			}
 			this.pinged = false;
 			break;