diff -urpN busybox.1/include/usage.h busybox.2/include/usage.h
--- busybox.1/include/usage.h	2006-09-02 18:15:51.000000000 +0200
+++ busybox.2/include/usage.h	2006-09-04 00:24:13.000000000 +0200
@@ -2092,7 +2092,7 @@ USE_FEATURE_MDEV_CONFIG( \
 #define nameif_trivial_usage \
 	"[-s] [-c FILE] [{IFNAME MACADDR}]"
 #define nameif_full_usage \
-	"Nameif renaming network interface while it in the down state.\n\n" \
+	"Nameif renames network interface while it in the down state.\n\n" \
 	"Options:\n" \
 	"\t-c FILE\t\tUse configuration file (default is /etc/mactab)\n" \
 	"\t-s\t\tUse syslog (LOCAL0 facility)\n" \
diff -urpN busybox.1/networking/nameif.c busybox.2/networking/nameif.c
--- busybox.1/networking/nameif.c	2006-09-04 00:32:55.000000000 +0200
+++ busybox.2/networking/nameif.c	2006-09-04 19:39:19.000000000 +0200
@@ -41,28 +41,6 @@ typedef struct mactable_s {
 	struct ether_addr *mac;
 } mactable_t;
 
-static unsigned long flags;
-
-static void serror(const char *s, ...) ATTRIBUTE_NORETURN;
-
-static void serror(const char *s, ...)
-{
-	va_list ap;
-
-	va_start(ap, s);
-
-	if (flags & 1) {
-		openlog(bb_applet_name, 0, LOG_LOCAL0);
-		vsyslog(LOG_ERR, s, ap);
-		closelog();
-	} else {
-		bb_verror_msg(s, ap, NULL);
-	}
-	va_end(ap);
-
-	exit(EXIT_FAILURE);
-}
-
 /* Check ascii str_macaddr, convert and copy to *mac */
 static struct ether_addr *cc_macaddr(const char *str_macaddr)
 {
@@ -70,7 +48,7 @@ static struct ether_addr *cc_macaddr(con
 
 	lmac = ether_aton(str_macaddr);
 	if (lmac == NULL)
-		serror("cannot parse MAC %s", str_macaddr);
+		bb_error_msg_and_die("cannot parse MAC %s", str_macaddr);
 	mac = xmalloc(ETH_ALEN);
 	memcpy(mac, lmac, ETH_ALEN);
 
@@ -87,7 +65,10 @@ int nameif_main(int argc, char **argv)
 	int if_index = 1;
 	mactable_t *ch;
 
-	flags = bb_getopt_ulflags(argc, argv, "sc:", &fname);
+	if (1 & bb_getopt_ulflags(argc, argv, "sc:", &fname)) {
+		openlog(bb_applet_name, 0, LOG_LOCAL0);
+		bb_logmode = LOGMODE_SYSLOG;
+	}
 
 	if ((argc - optind) & 1)
 		bb_show_usage();
@@ -96,9 +77,9 @@ int nameif_main(int argc, char **argv)
 		char **a = argv + optind;
 
 		while (*a) {
-
 			if (strlen(*a) > IF_NAMESIZE)
-				serror("interface name `%s' too long", *a);
+				bb_error_msg_and_die("interface name `%s' "
+					    "too long", *a);
 			ch = xzalloc(sizeof(mactable_t));
 			ch->ifname = xstrdup(*a++);
 			ch->mac = cc_macaddr(*a++);
@@ -123,7 +104,8 @@ int nameif_main(int argc, char **argv)
 			ch = xzalloc(sizeof(mactable_t));
 			ch->ifname = xstrndup(line_ptr, name_length);
 			if (name_length > IF_NAMESIZE)
-				serror("interface name `%s' too long", ch->ifname);
+				bb_error_msg_and_die("interface name `%s' "
+						"too long", ch->ifname);
 			line_ptr += name_length;
 			line_ptr += strspn(line_ptr, " \t");
 			name_length = strspn(line_ptr, "0123456789ABCDEFabcdef:");
@@ -138,8 +120,7 @@ int nameif_main(int argc, char **argv)
 		fclose(ifh);
 	}
 
-	if ((ctl_sk = socket(PF_INET, SOCK_DGRAM, 0)) == -1)
-		serror("socket: %m");
+	ctl_sk = xsocket(PF_INET, SOCK_DGRAM, 0);
 
 	while (clist) {
 		struct ifreq ifr;
@@ -167,7 +148,7 @@ int nameif_main(int argc, char **argv)
 
 		strcpy(ifr.ifr_newname, ch->ifname);
 		if (ioctl(ctl_sk, SIOCSIFNAME, &ifr) < 0)
-			serror("cannot change ifname %s to %s: %m",
+			bb_perror_msg_and_die("cannot change ifname %s to %s",
 				   ifr.ifr_name, ch->ifname);
 
 		/* Remove list entry of renamed interface */
diff -urpN busybox.1/networking/zcip.c busybox.2/networking/zcip.c
--- busybox.1/networking/zcip.c	2006-09-04 01:30:27.000000000 +0200
+++ busybox.2/networking/zcip.c	2006-09-04 19:39:14.000000000 +0200
@@ -124,10 +124,7 @@ static void arp(int fd, struct sockaddr 
 
 	// send it
 	if (sendto(fd, &p, sizeof (p), 0, saddr, sizeof (*saddr)) < 0) {
-		if (FOREGROUND)
-			perror("sendto");
-		else
-			syslog(LOG_ERR, "sendto: %s", strerror(errno));
+		bb_perror_msg("sendto");
 		//return -errno;
 	}
 	// Currently all callers ignore errors, that's why returns are
@@ -148,8 +145,7 @@ static int run(char *script, char *arg, 
 		if (ip != NULL) {
 			char *addr = inet_ntoa(*ip);
 			setenv("ip", addr, 1);
-			if (!FOREGROUND)
-				syslog(LOG_INFO, "%s %s %s", arg, intf, addr);
+			bb_info_msg("%s %s %s", arg, intf, addr);
 		}
 
 		pid = vfork();
@@ -158,10 +154,7 @@ static int run(char *script, char *arg, 
 			goto bad;
 		} else if (pid == 0) {		// child
 			execl(script, script, arg, NULL);
-			if (FOREGROUND)
-				perror("execl");
-			else
-				syslog(LOG_ERR, "execl: %s", strerror(errno));
+			bb_perror_msg("execl");
 			_exit(EXIT_FAILURE);
 		}
 
@@ -170,24 +163,15 @@ static int run(char *script, char *arg, 
 			goto bad;
 		}
 		if (WEXITSTATUS(status) != 0) {
-			if (FOREGROUND)
-				bb_error_msg("script %s failed, exit=%d",
-					script, WEXITSTATUS(status));
-			else
-				syslog(LOG_ERR, "script %s failed, exit=%d",
-					script, WEXITSTATUS(status));
+			bb_error_msg("script %s failed, exit=%d",
+				script, WEXITSTATUS(status));
 			return -errno;
 		}
 	}
 	return 0;
 bad:
 	status = -errno;
-	if (FOREGROUND)
-		bb_perror_msg("%s %s, %s",
-			arg, intf, why);
-	else
-		syslog(LOG_ERR, "%s %s, %s: %s",
-			arg, intf, why, strerror(errno));
+	bb_perror_msg("%s %s, %s", arg, intf, why);
 	return status;
 }
 
@@ -235,6 +219,11 @@ int zcip_main(int argc, char *argv[])
 	char *r_opt;
 	bb_opt_complementally = "vv:vf"; // -v accumulates and implies -f
 	opts = bb_getopt_ulflags(argc, argv, "fqr:v", &r_opt, &verbose);
+	if (!FOREGROUND) {
+		/* Do it early, before all bb_xx_msg calls */
+		bb_logmode = LOGMODE_SYSLOG;
+		openlog(bb_applet_name, 0, LOG_DAEMON);
+	}
 	if (opts & 4) { // -r n.n.n.n
 		if (inet_aton(r_opt, &ip) == 0
 		|| (ntohl(ip.s_addr) & IN_CLASSB_NET) != LINKLOCAL_ADDR) {
@@ -285,9 +274,8 @@ int zcip_main(int argc, char *argv[])
 
 	// daemonize now; don't delay system startup
 	if (!FOREGROUND) {
-		xdaemon(0, verbose);
-		openlog(bb_applet_name, 0, LOG_DAEMON);
-		syslog(LOG_INFO, "start, interface %s", intf);
+		xdaemon(0, 0);
+		bb_info_msg("start, interface %s", intf);
 	}
 
 	// run the dynamic address negotiation protocol,
@@ -557,10 +545,6 @@ int zcip_main(int argc, char *argv[])
 		} // switch poll
 	}
 bad:
-	if (FOREGROUND)
-		perror(why);
-	else
-		syslog(LOG_ERR, "%s %s, %s error: %s",
-			bb_applet_name, intf, why, strerror(errno));
+	bb_perror_msg("%s, %s", intf, why);
 	return EXIT_FAILURE;
 }
