diff --git a/networking/traceroute.c b/networking/traceroute.c
index 1204c5e..ec3ac8b 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -243,7 +243,7 @@
 //kbuild:lib-$(CONFIG_TRACEROUTE6) += traceroute.o
 
 //usage:#define traceroute_trivial_usage
-//usage:       "[-"IF_TRACEROUTE6("46")"FIlnrv] [-f 1ST_TTL] [-m MAXTTL] [-q PROBES] [-p PORT]\n"
+//usage:       "[-"IF_TRACEROUTE6("46")IF_FEATURE_TRACEROUTE_USE_ICMP("I")"Flnrv] [-f 1ST_TTL] [-m MAXTTL] [-q PROBES] [-p PORT]\n"
 //usage:       "	[-t TOS] [-w WAIT_SEC] [-s SRC_IP] [-i IFACE]\n"
 //usage:       "	[-z PAUSE_MSEC] HOST [BYTES]"
 //usage:#define traceroute_full_usage "\n\n"
@@ -271,15 +271,20 @@
 //usage:     "\n	-s IP	Source address"
 //usage:     "\n	-i IFACE Source interface"
 //usage:     "\n	-t N	Type-of-service in probe packets (default 0)"
-//usage:     "\n	-w SEC	Time to wait for a response (default 3)"
-//usage:     "\n	-g IP	Loose source route gateway (8 max)"
+//usage:     "\n	-w SEC	Wait for a response (default 3)"
+//usage:     "\n	-z MSEC	Wait before each send"
 //usage:
 //usage:#define traceroute6_trivial_usage
-//usage:       "[-nrv] [-m MAXTTL] [-q PROBES] [-p PORT]\n"
+//usage:       "[-"IF_FEATURE_TRACEROUTE_USE_ICMP("I")"nrv] [-f 1ST_TTL] [-m MAXTTL] [-q PROBES] [-p PORT]\n"
 //usage:       "	[-t TOS] [-w WAIT_SEC] [-s SRC_IP] [-i IFACE]\n"
-//usage:       "	HOST [BYTES]"
+//usage:       "	[-z PAUSE_MSEC] HOST [BYTES]"
 //usage:#define traceroute6_full_usage "\n\n"
 //usage:       "Trace the route to HOST\n"
+////NOP?     "\n	-F	Set don't fragment bit"
+//usage:	IF_FEATURE_TRACEROUTE_USE_ICMP(
+//usage:     "\n	-I	Use ICMP ECHO instead of UDP datagrams"
+//usage:	)
+////NOP:     "\n	-l	Display TTL value of the returned packet"
 //Currently disabled (TRACEROUTE_SO_DEBUG==0)
 ////usage:     "\n	-d	Set SO_DEBUG options to socket"
 //usage:     "\n	-n	Print numeric addresses"
@@ -287,6 +292,7 @@
 //usage:	IF_FEATURE_TRACEROUTE_VERBOSE(
 //usage:     "\n	-v	Verbose"
 //usage:	)
+//usage:     "\n	-f N	First number of hops (default 1)"
 //usage:     "\n	-m N	Max number of hops"
 //usage:     "\n	-q N	Number of probes per hop (default 3)"
 //usage:     "\n	-p N	Base UDP port number used in probes"
@@ -294,7 +300,8 @@
 //usage:     "\n	-s IP	Source address"
 //usage:     "\n	-i IFACE Source interface"
 //usage:     "\n	-t N	Type-of-service in probe packets (default 0)"
-//usage:     "\n	-w SEC	Time wait for a response (default 3)"
+//usage:     "\n	-w SEC	Wait for a response (default 3)"
+//usage:     "\n	-z MSEC	Wait before each send"
 
 #define TRACEROUTE_SO_DEBUG 0
 
@@ -334,7 +341,7 @@
 
 
 #define OPT_STRING \
-	"FIlnrdvxt:i:m:p:q:s:w:z:f:" \
+	"FIlnrdvt:i:m:p:q:s:w:z:f:" \
 	"4" IF_TRACEROUTE6("6")
 enum {
 	OPT_DONT_FRAGMNT = (1 << 0),    /* F */
@@ -344,18 +351,17 @@
 	OPT_BYPASS_ROUTE = (1 << 4),    /* r */
 	OPT_DEBUG        = (1 << 5),    /* d */
 	OPT_VERBOSE      = (1 << 6) * ENABLE_FEATURE_TRACEROUTE_VERBOSE, /* v */
-	OPT_IP_CHKSUM    = (1 << 7),    /* x */
-	OPT_TOS          = (1 << 8),    /* t */
-	OPT_DEVICE       = (1 << 9),    /* i */
-	OPT_MAX_TTL      = (1 << 10),   /* m */
-	OPT_PORT         = (1 << 11),   /* p */
-	OPT_NPROBES      = (1 << 12),   /* q */
-	OPT_SOURCE       = (1 << 13),   /* s */
-	OPT_WAITTIME     = (1 << 14),   /* w */
-	OPT_PAUSE_MS     = (1 << 15),   /* z */
-	OPT_FIRST_TTL    = (1 << 16),   /* f */
-	OPT_IPV4         = (1 << 17),   /* 4 */
-	OPT_IPV6         = (1 << 18) * ENABLE_TRACEROUTE6, /* 6 */
+	OPT_TOS          = (1 << 7),    /* t */
+	OPT_DEVICE       = (1 << 8),    /* i */
+	OPT_MAX_TTL      = (1 << 9),    /* m */
+	OPT_PORT         = (1 << 10),   /* p */
+	OPT_NPROBES      = (1 << 11),   /* q */
+	OPT_SOURCE       = (1 << 12),   /* s */
+	OPT_WAITTIME     = (1 << 13),   /* w */
+	OPT_PAUSE_MS     = (1 << 14),   /* z */
+	OPT_FIRST_TTL    = (1 << 15),   /* f */
+	OPT_IPV4         = (1 << 16),   /* 4 */
+	OPT_IPV6         = (1 << 17) * ENABLE_TRACEROUTE6, /* 6 */
 };
 #if ENABLE_FEATURE_TRACEROUTE_VERBOSE
 # define verbose (option_mask32 & OPT_VERBOSE)
@@ -896,10 +902,6 @@
 	);
 	argv += optind;
 
-#if 0 /* IGNORED */
-	if (op & OPT_IP_CHKSUM)
-		bb_error_msg("warning: ip checksums disabled");
-#endif
 	if (op & OPT_MAX_TTL)
 		G.max_ttl = xatou_range(max_ttl_str, 1, 255);
 	if (op & OPT_PORT)
