diff -Naur busybox.orig/libbb/getopt32.c busybox/libbb/getopt32.c
--- busybox.orig/libbb/getopt32.c	2008-02-05 08:20:15 +0000
+++ busybox/libbb/getopt32.c	2008-02-10 18:49:33 +0000
@@ -278,6 +278,7 @@
 typedef struct {
 	int opt;
 	int list_flg;
+	int int_flg;
 	unsigned switch_on;
 	unsigned switch_off;
 	unsigned incongruously;
@@ -429,6 +430,10 @@
 			on_off->list_flg++;
 			continue;
 		}
+		if (c == '+' && s[2] == ':') {
+			on_off->int_flg++;
+			continue;
+		}
 		if (c == ':' || c == '\0') {
 			requires |= on_off->switch_on;
 			continue;
@@ -523,6 +528,8 @@
 			(*(on_off->counter))++;
 		if (on_off->list_flg) {
 			llist_add_to_end((llist_t **)(on_off->optarg), optarg);
+		} else if (on_off->int_flg) {
+			*(unsigned **)(on_off->optarg) = (void *)xatoi_u(optarg);
 		} else if (on_off->optarg) {
 			*(char **)(on_off->optarg) = optarg;
 		}
