--- busybox-1.3.1/util-linux/fdisk.c.orig	2007-06-06 21:18:45.000000000 -0500
+++ busybox-1.3.1/util-linux/fdisk.c	2007-06-06 21:17:20.000000000 -0500
@@ -331,13 +331,16 @@
 read_hex(const struct systypes *sys)
 {
 	unsigned long v;
+	char *e;
 	while (1) {
 		read_nonempty(_("Hex code (type L to list codes): "));
 		if (*line_ptr == 'l' || *line_ptr == 'L') {
 			list_types(sys);
 			continue;
 		}
-		v = bb_strtoul(line_ptr, NULL, 16);
+		v = bb_strtoul(line_ptr, &e, 16);
+		/* Clear out EINVAL code if it's because of the trailing \n */
+		if ((errno == EINVAL) && (*e == '\n')) errno = 0;
 		if (errno || v > 0xff) continue;
 		return v;
 	}