diff -Naur busybox.orig/coreutils/id.c busybox/coreutils/id.c
--- busybox.orig/coreutils/id.c	2008-09-15 21:18:57 +0000
+++ busybox/coreutils/id.c	2008-09-17 23:25:34 +0000
@@ -144,5 +144,26 @@
 #endif
 
 	bb_putchar('\n');
+
+	{
+		parser_t *parser = config_open("/etc/group");
+		char *user = argv[optind];
+		size_t len = strlen(user);
+		char *token[4];
+		while (config_read(parser, token, 4, 3, "#:", PARSE_NORMAL & ~PARSE_COLLAPSE)) {
+			char *s;
+			// no users in the group? -> next, please!
+			if (!token[3])
+				continue;
+			// user exists in comma-separated list? ->
+			s = strstr(token[3], user);
+			if (s && (s == token[3] || ',' == s[-1]) && ('\0' == s[len] || ',' == s[len])) {
+				// print membership
+				bb_info_msg("%d(%s)", atoi(token[2]), token[0]);
+			}
+		}
+		config_close(parser);
+	}
+
 	fflush_stdout_and_exit(status);
 }
