 src/ngircd/irc-server.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/src/ngircd/irc-server.c b/src/ngircd/irc-server.c
index 3f9753b9..8b435783 100644
--- a/src/ngircd/irc-server.c
+++ b/src/ngircd/irc-server.c
@@ -372,6 +372,7 @@ IRC_SQUIT(CLIENT * Client, REQUEST * Req)
 
 	assert(Client != NULL);
 	assert(Req != NULL);
+	assert(Req->argc > 1);
 
 	if (Client_Type(Client) != CLIENT_SERVER
 	    && !Client_HasMode(Client, 'o'))
@@ -410,24 +411,19 @@ IRC_SQUIT(CLIENT * Client, REQUEST * Req)
 	client_con = Client_Conn(Client);
 	con = Client_Conn(target);
 
-	if (Req->argv[1][0])
-		if (Client_NextHop(from) != Client || con > NONE)
-			snprintf(msg, sizeof(msg), "\"%s\" (SQUIT from %s)",
-				 Req->argv[1], Client_ID(from));
-		else
-			strlcpy(msg, Req->argv[1], sizeof(msg));
+	if (Client_NextHop(from) != Client || con > NONE)
+		snprintf(msg, sizeof(msg), "\"%s\" (SQUIT from %s)",
+			 Req->argv[1], Client_ID(from));
 	else
-		snprintf(msg, sizeof(msg), "Got SQUIT from %s",
-			 Client_ID(from));
+		strlcpy(msg, Req->argv[1], sizeof(msg));
 
 	if (con > NONE) {
 		/* We are directly connected to the target server, so we
 		 * have to tear down the connection and to inform all the
 		 * other remaining servers in the network */
-		IRC_SendWallops(Client_ThisServer(), Client_ThisServer(),
+		IRC_SendWallops(Client_ThisServer(), from,
 				"Received SQUIT %s from %s: %s",
-				Req->argv[0], Client_ID(from),
-				Req->argv[1][0] ? Req->argv[1] : "-");
+				Req->argv[0], Client_ID(from), Req->argv[1]);
 		Conn_Close(con, NULL, msg, true);
 		if (con == client_con)
 			return DISCONNECTED;
