diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c
index d41439ed..8c08cdc1 100644
--- a/src/ngircd/irc.c
+++ b/src/ngircd/irc.c
@@ -278,11 +278,6 @@ IRC_TRACE(CLIENT *Client, REQUEST *Req)
 
 	IRC_SetPenalty(Client, 3);
 
-	/* Bad number of arguments? */
-	if (Req->argc > 1)
-		return IRC_WriteErrClient(Client, ERR_NORECIPIENT_MSG,
-					  Client_ID(Client), Req->command);
-
 	_IRC_GET_SENDER_OR_RETURN_(from, Req, Client)
 	_IRC_GET_TARGET_SERVER_OR_RETURN_(target, Req, 0, from)
 
diff --git a/src/ngircd/parse.c b/src/ngircd/parse.c
index 7172f411..bc01e093 100644
--- a/src/ngircd/parse.c
+++ b/src/ngircd/parse.c
@@ -109,7 +109,7 @@ static COMMAND My_Commands[] =
 	{ "SUMMON", IRC_SUMMON, CLIENT_USER|CLIENT_SERVER, 0, -1, 0, 0, 0 },
 	{ "TIME", IRC_TIME, CLIENT_USER|CLIENT_SERVER, 0, 1, 0, 0, 0 },
 	{ "TOPIC", IRC_TOPIC, CLIENT_USER|CLIENT_SERVER, 1, 2, 0, 0, 0 },
-	{ "TRACE", IRC_TRACE, CLIENT_USER|CLIENT_SERVER, 0, -1, 0, 0, 0 },
+	{ "TRACE", IRC_TRACE, CLIENT_USER|CLIENT_SERVER, 0, 1, 0, 0, 0 },
 	{ "USER", IRC_USER, CLIENT_ANY, 0, -1, 0, 0, 0 },
 	{ "USERHOST", IRC_USERHOST, CLIENT_USER, 1, -1, 0, 0, 0 },
 	{ "USERS", IRC_USERS, CLIENT_USER|CLIENT_SERVER, 0, -1, 0, 0, 0 },