diff -ruN mod_throttle-3.1.2.orig/mod_throttle.c mod_throttle-3.1.2/mod_throttle.c
--- mod_throttle-3.1.2.orig/mod_throttle.c	2000-12-03 05:15:10.000000000 -0500
+++ mod_throttle-3.1.2/mod_throttle.c	2002-12-13 21:49:19.000000000 -0500
@@ -1865,13 +1865,12 @@
 }
 
 static const char *
-throttle_single_user(cmd_parms *cmd, const char *user, const char *args)
+throttle_single_user(cmd_parms *cmd, const char *user, uid_t uid, const char *args)
 {
-	uid_t uid;
 	t_config *config;
 
 	/* Skip users who are not defined in the system user database. */
-	if ((uid = uname2id(user)) == (uid_t) -1)
+	if (uid == (uid_t) -1)
 		return (const char *) 0;
 
 	/* Has this user been previously defined? */
@@ -1906,10 +1905,12 @@
 throttle_user(cmd_parms *cmd, void *dconfig, const char *args)
 {
 	const char *user, *buf, *fmt, *err;
+	uid_t uid;
 
 	if ((user = ap_getword_white(cmd->temp_pool, &args)) == (char *) 0)
 		return "User ID, *, or pathname not specified.";
 
+
 	/* Create a throttle for all the users that appear in the
 	 * system user database.
 	 */
@@ -1919,7 +1920,7 @@
 
 		setpwent();
 		while ((pw = getpwent()) != (struct passwd *) 0) {
-			err = throttle_single_user(cmd, pw->pw_name, args);
+			err = throttle_single_user(cmd, pw->pw_name, pw->pw_uid, args);
 			if (err != (const char *) 0)
 				break;
 		}
@@ -1951,7 +1952,8 @@
 
 		/* Read the user name at the start of this line. */
 		while (fscanf(fp, fmt, buf) == 1) {
-			err = throttle_single_user(cmd, buf, args);
+			uid = uname2id(buf);
+			err = throttle_single_user(cmd, buf, uid, args);
 			if (err != (const char *) 0)
 				break;
 		}
@@ -1961,7 +1963,8 @@
 		return err;
 	}
 
-	return throttle_single_user(cmd, user, args);
+	uid = uname2id(user);
+	return throttle_single_user(cmd, user, uid, args);
 }
 
 #ifdef THROTTLE_CLIENT_IP
