diff -urpN busybox.0/include/grp_.h busybox.1/include/grp_.h
--- busybox.0/include/grp_.h	2006-10-06 16:44:06.000000000 +0200
+++ busybox.1/include/grp_.h	2006-10-06 16:55:40.000000000 +0200
@@ -34,6 +34,8 @@
 #include <features.h>
 #include <stdio.h>
 
+#include "remap_names.h"
+
 /* The group structure.	 */
 struct group
 {
@@ -74,27 +76,27 @@ extern struct group *getgrnam (__const c
    other reentrant functions so the chances are good this is what the
    POSIX people would choose.  */
 
-extern int getgrent_r (struct group *__restrict __resultbuf,
-		       char *__restrict __buffer, size_t __buflen,
-		       struct group **__restrict __result);
-
-/* Search for an entry with a matching group ID.  */
-extern int getgrgid_r (gid_t __gid, struct group *__restrict __resultbuf,
-		       char *__restrict __buffer, size_t __buflen,
-		       struct group **__restrict __result);
-
-/* Search for an entry with a matching group name.  */
-extern int getgrnam_r (__const char *__restrict __name,
-		       struct group *__restrict __resultbuf,
-		       char *__restrict __buffer, size_t __buflen,
-		       struct group **__restrict __result);
-
-/* Read a group entry from STREAM.  This function is not standardized
-   an probably never will.  */
-extern int fgetgrent_r (FILE *__restrict __stream,
-			struct group *__restrict __resultbuf,
-			char *__restrict __buffer, size_t __buflen,
-			struct group **__restrict __result);
+////extern int getgrent_r (struct group *__restrict __resultbuf,
+////		       char *__restrict __buffer, size_t __buflen,
+////		       struct group **__restrict __result);
+////
+/////* Search for an entry with a matching group ID.  */
+////extern int getgrgid_r (gid_t __gid, struct group *__restrict __resultbuf,
+////		       char *__restrict __buffer, size_t __buflen,
+////		       struct group **__restrict __result);
+////
+/////* Search for an entry with a matching group name.  */
+////extern int getgrnam_r (__const char *__restrict __name,
+////		       struct group *__restrict __resultbuf,
+////		       char *__restrict __buffer, size_t __buflen,
+////		       struct group **__restrict __result);
+////
+/////* Read a group entry from STREAM.  This function is not standardized
+////   an probably never will.  */
+////extern int fgetgrent_r (FILE *__restrict __stream,
+////			struct group *__restrict __resultbuf,
+////			char *__restrict __buffer, size_t __buflen,
+////			struct group **__restrict __result);
 
 /* Set the group set for the current user to GROUPS (N of them).  */
 extern int setgroups (size_t __n, __const gid_t *__groups);
diff -urpN busybox.0/include/pwd_.h busybox.1/include/pwd_.h
--- busybox.0/include/pwd_.h	2006-10-06 16:44:06.000000000 +0200
+++ busybox.1/include/pwd_.h	2006-10-06 16:55:42.000000000 +0200
@@ -33,6 +33,8 @@
 #include <features.h>
 #include <stdio.h>
 
+#include "remap_names.h"
+
 /* The passwd structure.  */
 struct passwd
 {
@@ -76,27 +78,27 @@ extern struct passwd *getpwnam (__const 
    other reentrant functions so the chances are good this is what the
    POSIX people would choose.  */
 
-extern int getpwent_r (struct passwd *__restrict __resultbuf,
-		       char *__restrict __buffer, size_t __buflen,
-		       struct passwd **__restrict __result);
-
-extern int getpwuid_r (uid_t __uid,
-		       struct passwd *__restrict __resultbuf,
-		       char *__restrict __buffer, size_t __buflen,
-		       struct passwd **__restrict __result);
-
-extern int getpwnam_r (__const char *__restrict __name,
-		       struct passwd *__restrict __resultbuf,
-		       char *__restrict __buffer, size_t __buflen,
-		       struct passwd **__restrict __result);
-
-
-/* Read an entry from STREAM.  This function is not standardized and
-   probably never will.  */
-extern int fgetpwent_r (FILE *__restrict __stream,
-			struct passwd *__restrict __resultbuf,
-			char *__restrict __buffer, size_t __buflen,
-			struct passwd **__restrict __result);
+//// extern int getpwent_r (struct passwd *__restrict __resultbuf,
+//// 		       char *__restrict __buffer, size_t __buflen,
+//// 		       struct passwd **__restrict __result);
+//// 
+//// extern int getpwuid_r (uid_t __uid,
+//// 		       struct passwd *__restrict __resultbuf,
+//// 		       char *__restrict __buffer, size_t __buflen,
+//// 		       struct passwd **__restrict __result);
+//// 
+//// extern int getpwnam_r (__const char *__restrict __name,
+//// 		       struct passwd *__restrict __resultbuf,
+//// 		       char *__restrict __buffer, size_t __buflen,
+//// 		       struct passwd **__restrict __result);
+//// 
+//// 
+//// /* Read an entry from STREAM.  This function is not standardized and
+////    probably never will.  */
+//// extern int fgetpwent_r (FILE *__restrict __stream,
+//// 			struct passwd *__restrict __resultbuf,
+//// 			char *__restrict __buffer, size_t __buflen,
+//// 			struct passwd **__restrict __result);
 
 /* Re-construct the password-file line for the given uid
    in the given buffer.  This knows the format that the caller
diff -urpN busybox.0/include/remap_names.h busybox.1/include/remap_names.h
--- busybox.0/include/remap_names.h	1970-01-01 01:00:00.000000000 +0100
+++ busybox.1/include/remap_names.h	2006-10-06 16:55:43.000000000 +0200
@@ -0,0 +1,35 @@
+#define initgroups  BB_initgroups
+#define getpw       BB_getpw
+#define putspent    BB_putspent
+#define putgrent    BB_putgrent
+#define putpwent    BB_putpwent
+#define sgetspent   BB_sgetspent
+#define getspnam    BB_getspnam
+#define getpwuid    BB_getpwuid
+#define getpwnam    BB_getpwnam
+#define getgrnam    BB_getgrnam
+#define getgrgid    BB_getgrgid
+#define fgetspent   BB_fgetspent
+#define fgetpwent   BB_fgetpwent
+#define fgetgrent   BB_fgetgrent
+#define getspent    BB_getspent
+#define getpwent    BB_getpwent
+#define getgrent    BB_getgrent
+#define endspent    BB_endspent
+#define endpwent    BB_endpwent
+#define endgrent    BB_endgrent
+#define setspent    BB_setspent
+#define setpwent    BB_setpwent
+#define setgrent    BB_setgrent
+#define getspnam_r  BB_getspnam_r
+#define getpwnam_r  BB_getpwnam_r
+#define getgrnam_r  BB_getgrnam_r
+#define getpwuid_r  BB_getpwuid_r
+#define getgrgid_r  BB_getgrgid_r
+#define sgetspent_r BB_sgetspent_r
+#define getspent_r  BB_getspent_r
+#define getpwent_r  BB_getpwent_r
+#define getgrent_r  BB_getgrent_r
+#define fgetspent_r BB_fgetspent_r
+#define fgetpwent_r BB_fgetpwent_r
+#define fgetgrent_r BB_fgetgrent_r
diff -urpN busybox.0/include/shadow_.h busybox.1/include/shadow_.h
--- busybox.0/include/shadow_.h	2006-10-06 16:44:06.000000000 +0200
+++ busybox.1/include/shadow_.h	2006-10-06 16:55:51.000000000 +0200
@@ -28,6 +28,8 @@
 
 #include <stdio.h>
 
+#include "remap_names.h"
+
 /* Paths to the user database files.  */
 #ifndef _PATH_SHADOW
 #define	_PATH_SHADOW	"/etc/shadow"
@@ -74,21 +76,21 @@ extern struct spwd *fgetspent (FILE *__s
 /* Write line containing shadow password entry to stream.  */
 extern int putspent (__const struct spwd *__p, FILE *__stream);
 
-/* Reentrant versions of some of the functions above.  */
-extern int getspent_r (struct spwd *__result_buf, char *__buffer,
-		       size_t __buflen, struct spwd **__result);
-
-extern int getspnam_r (__const char *__name, struct spwd *__result_buf,
-		       char *__buffer, size_t __buflen,
-		       struct spwd **__result);
-
-extern int sgetspent_r (__const char *__string, struct spwd *__result_buf,
-			char *__buffer, size_t __buflen,
-			struct spwd **__result);
-
-extern int fgetspent_r (FILE *__stream, struct spwd *__result_buf,
-			char *__buffer, size_t __buflen,
-			struct spwd **__result);
+//// /* Reentrant versions of some of the functions above.  */
+//// extern int getspent_r (struct spwd *__result_buf, char *__buffer,
+//// 		       size_t __buflen, struct spwd **__result);
+//// 
+//// extern int getspnam_r (__const char *__name, struct spwd *__result_buf,
+//// 		       char *__buffer, size_t __buflen,
+//// 		       struct spwd **__result);
+//// 
+//// extern int sgetspent_r (__const char *__string, struct spwd *__result_buf,
+//// 			char *__buffer, size_t __buflen,
+//// 			struct spwd **__result);
+//// 
+//// extern int fgetspent_r (FILE *__stream, struct spwd *__result_buf,
+//// 			char *__buffer, size_t __buflen,
+//// 			struct spwd **__result);
 /* Protect password file against multi writers.  */
 extern int lckpwdf (void);
 
diff -urpN busybox.0/libpwdgrp/pwd_grp.c busybox.1/libpwdgrp/pwd_grp.c
--- busybox.0/libpwdgrp/pwd_grp.c	2006-10-06 16:44:06.000000000 +0200
+++ busybox.1/libpwdgrp/pwd_grp.c	2006-10-06 16:55:52.000000000 +0200
@@ -29,6 +29,9 @@
 #include <assert.h>
 #include <ctype.h>
 
+#include "remap_names.h"
+////#include "shadow_.h"
+
 #ifndef _PATH_SHADOW
 #define	_PATH_SHADOW	"/etc/shadow"
 #endif
@@ -47,6 +50,16 @@
 #define PWD_BUFFER_SIZE 256
 #define GRP_BUFFER_SIZE 256
 
+////
+int getpwuid_R (uid_t __uid,
+		       struct passwd *__restrict __resultbuf,
+		       char *__restrict __buffer, size_t __buflen,
+		       struct passwd **__restrict __result);
+int getgrgid_R (gid_t __gid, struct group *__restrict __resultbuf,
+		       char *__restrict __buffer, size_t __buflen,
+		       struct group **__restrict __result);
+
+
 /**********************************************************************/
 /* Prototypes for internal functions. */
 
@@ -73,7 +86,7 @@ extern int __pgsreader(int (*__parserfun
  */
 /**********************************************************************/
 
-int fgetpwent_r(FILE *__restrict stream, struct passwd *__restrict resultbuf,
+int fgetpwent_R(FILE *__restrict stream, struct passwd *__restrict resultbuf,
 				char *__restrict buffer, size_t buflen,
 				struct passwd **__restrict result)
 {
@@ -88,7 +101,7 @@ int fgetpwent_r(FILE *__restrict stream,
 	return rv;
 }
 
-int fgetgrent_r(FILE *__restrict stream, struct group *__restrict resultbuf,
+int fgetgrent_R(FILE *__restrict stream, struct group *__restrict resultbuf,
 				char *__restrict buffer, size_t buflen,
 				struct group **__restrict result)
 {
@@ -103,7 +116,7 @@ int fgetgrent_r(FILE *__restrict stream,
 	return rv;
 }
 
-int fgetspent_r(FILE *__restrict stream, struct spwd *__restrict resultbuf,
+int fgetspent_R(FILE *__restrict stream, struct spwd *__restrict resultbuf,
 				char *__restrict buffer, size_t buflen,
 				struct spwd **__restrict result)
 {
@@ -130,7 +143,7 @@ struct passwd *fgetpwent(FILE *stream)
 	static struct passwd resultbuf;
 	struct passwd *result;
 
-	fgetpwent_r(stream, &resultbuf, buffer, sizeof(buffer), &result);
+	fgetpwent_R(stream, &resultbuf, buffer, sizeof(buffer), &result);
 	return result;
 }
 
@@ -140,11 +153,11 @@ struct group *fgetgrent(FILE *stream)
 	static struct group resultbuf;
 	struct group *result;
 
-	fgetgrent_r(stream, &resultbuf, buffer, sizeof(buffer), &result);
+	fgetgrent_R(stream, &resultbuf, buffer, sizeof(buffer), &result);
 	return result;
 }
 
-extern int fgetspent_r(FILE *__restrict stream, struct spwd *__restrict resultbuf,
+extern int fgetspent_R(FILE *__restrict stream, struct spwd *__restrict resultbuf,
 				char *__restrict buffer, size_t buflen,
 				struct spwd **__restrict result);
 struct spwd *fgetspent(FILE *stream)
@@ -153,11 +166,11 @@ struct spwd *fgetspent(FILE *stream)
 	static struct spwd resultbuf;
 	struct spwd *result;
 
-	fgetspent_r(stream, &resultbuf, buffer, sizeof(buffer), &result);
+	fgetspent_R(stream, &resultbuf, buffer, sizeof(buffer), &result);
 	return result;
 }
 
-int sgetspent_r(const char *string, struct spwd *result_buf,
+int sgetspent_R(const char *string, struct spwd *result_buf,
 				char *buffer, size_t buflen, struct spwd **result)
 {
 	int rv = ERANGE;
@@ -239,7 +252,7 @@ struct passwd *getpwuid(uid_t uid)
 	static struct passwd resultbuf;
 	struct passwd *result;
 
-	getpwuid_r(uid, &resultbuf, buffer, sizeof(buffer), &result);
+	getpwuid_R(uid, &resultbuf, buffer, sizeof(buffer), &result);
 	return result;
 }
 
@@ -249,7 +262,7 @@ struct group *getgrgid(gid_t gid)
 	static struct group resultbuf;
 	struct group *result;
 
-	getgrgid_r(gid, &resultbuf, buffer, sizeof(buffer), &result);
+	getgrgid_R(gid, &resultbuf, buffer, sizeof(buffer), &result);
 	return result;
 }
 
@@ -257,7 +270,7 @@ struct group *getgrgid(gid_t gid)
  * to have been created as a reentrant version of the non-standard
  * functions getspuid.  Why getspuid was added, I do not know. */
 
-int getspuid_r(uid_t uid, struct spwd *__restrict resultbuf,
+int getspuid_R(uid_t uid, struct spwd *__restrict resultbuf,
 		       char *__restrict buffer, size_t buflen,
 		       struct spwd **__restrict result)
 {
@@ -267,8 +280,8 @@ int getspuid_r(uid_t uid, struct spwd *_
 	char pwd_buff[PWD_BUFFER_SIZE];
 
 	*result = NULL;
-	if (!(rv = getpwuid_r(uid, &password, pwd_buff, sizeof(pwd_buff), &pp))) {
-		rv = getspnam_r(password.pw_name, resultbuf, buffer, buflen, result);
+	if (!(rv = getpwuid_R(uid, &password, pwd_buff, sizeof(pwd_buff), &pp))) {
+		rv = getspnam_R(password.pw_name, resultbuf, buffer, buflen, result);
 	}
 
 	return rv;
@@ -283,7 +296,7 @@ struct spwd *getspuid(uid_t uid)
 	static struct spwd resultbuf;
 	struct spwd *result;
 
-	getspuid_r(uid, &resultbuf, buffer, sizeof(buffer), &result);
+	getspuid_R(uid, &resultbuf, buffer, sizeof(buffer), &result);
 	return result;
 }
 
@@ -293,7 +306,7 @@ struct passwd *getpwnam(const char *name
 	static struct passwd resultbuf;
 	struct passwd *result;
 
-	getpwnam_r(name, &resultbuf, buffer, sizeof(buffer), &result);
+	getpwnam_R(name, &resultbuf, buffer, sizeof(buffer), &result);
 	return result;
 }
 
@@ -303,7 +316,7 @@ struct group *getgrnam(const char *name)
 	static struct group resultbuf;
 	struct group *result;
 
-	getgrnam_r(name, &resultbuf, buffer, sizeof(buffer), &result);
+	getgrnam_R(name, &resultbuf, buffer, sizeof(buffer), &result);
 	return result;
 }
 
@@ -313,7 +326,7 @@ struct spwd *getspnam(const char *name)
 	static struct spwd resultbuf;
 	struct spwd *result;
 
-	getspnam_r(name, &resultbuf, buffer, sizeof(buffer), &result);
+	getspnam_R(name, &resultbuf, buffer, sizeof(buffer), &result);
 	return result;
 }
 
@@ -325,7 +338,7 @@ int getpw(uid_t uid, char *buf)
 
 	if (!buf) {
 		errno=EINVAL;
-	} else if (!getpwuid_r(uid, &resultbuf, buffer, sizeof(buffer), &result)) {
+	} else if (!getpwuid_R(uid, &resultbuf, buffer, sizeof(buffer), &result)) {
 		if (sprintf(buf, "%s:%s:%lu:%lu:%s:%s:%s\n",
 					resultbuf.pw_name, resultbuf.pw_passwd,
 					(unsigned long)(resultbuf.pw_uid),
@@ -372,7 +385,7 @@ void endpwent(void)
 }
 
 
-int getpwent_r(struct passwd *__restrict resultbuf,
+int getpwent_R(struct passwd *__restrict resultbuf,
 			   char *__restrict buffer, size_t buflen,
 			   struct passwd **__restrict result)
 {
@@ -418,7 +431,7 @@ void endgrent(void)
 	UNLOCK;
 }
 
-int getgrent_r(struct group *__restrict resultbuf,
+int getgrent_R(struct group *__restrict resultbuf,
 			   char *__restrict buffer, size_t buflen,
 			   struct group **__restrict result)
 {
@@ -464,7 +477,7 @@ void endspent(void)
 	UNLOCK;
 }
 
-int getspent_r(struct spwd *resultbuf, char *buffer,
+int getspent_R(struct spwd *resultbuf, char *buffer,
 			   size_t buflen, struct spwd **result)
 {
 	int rv;
@@ -495,7 +508,7 @@ struct passwd *getpwent(void)
 	static struct passwd pwd;
 	struct passwd *result;
 
-	getpwent_r(&pwd, line_buff, sizeof(line_buff), &result);
+	getpwent_R(&pwd, line_buff, sizeof(line_buff), &result);
 	return result;
 }
 
@@ -505,7 +518,7 @@ struct group *getgrent(void)
 	static struct group gr;
 	struct group *result;
 
-	getgrent_r(&gr, line_buff, sizeof(line_buff), &result);
+	getgrent_R(&gr, line_buff, sizeof(line_buff), &result);
 	return result;
 }
 
@@ -515,7 +528,7 @@ struct spwd *getspent(void)
 	static struct spwd spwd;
 	struct spwd *result;
 
-	getspent_r(&spwd, line_buff, sizeof(line_buff), &result);
+	getspent_R(&spwd, line_buff, sizeof(line_buff), &result);
 	return result;
 }
 
@@ -525,7 +538,7 @@ struct spwd *sgetspent(const char *strin
 	static struct spwd spwd;
 	struct spwd *result;
 
-	sgetspent_r(string, &spwd, line_buff, sizeof(line_buff), &result);
+	sgetspent_R(string, &spwd, line_buff, sizeof(line_buff), &result);
 	return result;
 }
 
