--- become.c.orig	2012-02-26 17:41:55.568333769 +0100
+++ become.c	2012-02-26 17:46:26.991333668 +0100
@@ -2,6 +2,7 @@
  * $Id: become.c,v 1.1.1.1 2006/03/21 23:44:12 dave Exp $
  */
 #include "become.h"
+#define MAXUID 4294967294
 
 char	*args[] = {"-", NULL};
 char	*vars[] = {"PATH", "TERM", NULL};
@@ -70,14 +71,14 @@
 		new_uid = strtol(argv[0], NULL, 10);
 		if (errno == EINVAL)
 			errx(EX_USAGE, "Invalid uid");
-		if (new_uid < 0 || new_uid > 65535)
+		if (new_uid < 0 || new_uid > MAXUID)
 			err(EX_USAGE, "uid out of range");
 	}
 	if (strlen(cp) > 0) {
 		new_gid = strtol(cp, NULL, 10);
 		if (errno == EINVAL)
 			errx(EX_USAGE, "Invalid gid");
-		if (new_gid < 0 || new_gid > 65535)
+		if (new_gid < 0 || new_gid > MAXUID)
 			err(EX_USAGE, "gid out of range");
 	}
 
@@ -113,7 +114,7 @@
 		}
 	}
 
-	printf("euid=%d, uid=%d, egid=%d, gid=%d\n",
+	printf("euid=%u, uid=%u, egid=%u, gid=%u\n",
 	    geteuid(), getuid(), getegid(), getgid());
 
 	if ((pid = fork()) == 0) {
