Apply Vladimir's latest cleanup patch.
 -Erik
diff --git a/busybox.c b/busybox.c
index 5085556..9db26df 100644
--- a/busybox.c
+++ b/busybox.c
@@ -10,6 +10,10 @@
 #define BB_DECLARE_EXTERN
 #include "messages.c"
 
+#ifdef BB_LOCALE_SUPPORT
+#include <locale.h>
+#endif
+
 int been_there_done_that = 0; /* Also used in applets.c */
 const char *applet_name;
 
@@ -60,7 +64,7 @@
 {
 	__link_f Link = link;
 
-	char command[256];
+	char *fpc;
 	int i;
 	int rc;
 
@@ -68,13 +72,13 @@
 		Link = symlink;
 
 	for (i = 0; applets[i].name != NULL; i++) {
-		sprintf ( command, "%s/%s", 
-				install_dir[applets[i].location], applets[i].name);
-		rc = Link(busybox, command);
-
-		if (rc) {
-			perror_msg("%s", command);
+		fpc = concat_path_file(
+			install_dir[applets[i].location], applets[i].name);
+		rc = Link(busybox, fpc);
+		if (rc!=0 && errno!=EEXIST) {
+			perror_msg("%s", fpc);
 		}
+		free(fpc);
 	}
 }
 
@@ -97,6 +101,11 @@
 	}
 #endif
 
+#ifdef BB_LOCALE_SUPPORT
+	if(getpid()!=1)	/* Do not set locale for `init' */
+		setlocale(LC_ALL, "");
+#endif
+
 	run_applet_by_name(applet_name, argc, argv);
 	error_msg_and_die("applet not found");
 }