diff --git a/libbb/update_passwd.c b/libbb/update_passwd.c
index 301893b..f5ce1f9 100644
--- a/libbb/update_passwd.c
+++ b/libbb/update_passwd.c
@@ -81,6 +81,7 @@
 	FILE *new_fp;
 	char *fnamesfx;
 	char *sfx_char;
+	char *name_colon;
 	unsigned user_len;
 	int old_fd;
 	int new_fd;
@@ -103,8 +104,8 @@
 	/* New passwd file, "/etc/passwd+" for now */
 	fnamesfx = xasprintf("%s+", filename);
 	sfx_char = &fnamesfx[strlen(fnamesfx)-1];
-	name = xasprintf("%s:", name);
-	user_len = strlen(name);
+	name_colon = xasprintf("%s:", name);
+	user_len = strlen(name_colon);
 
 	if (shadow)
 		old_fp = fopen(filename, "r+");
@@ -166,7 +167,7 @@
 		line = xmalloc_fgetline(old_fp);
 		if (!line) /* EOF/error */
 			break;
-		if (strncmp(name, line, user_len) != 0) {
+		if (strncmp(name_colon, line, user_len) != 0) {
 			fprintf(new_fp, "%s\n", line);
 			goto next;
 		}
@@ -225,11 +226,11 @@
 				/* move past old change date */
 				cp = strchrnul(cp + 1, ':');
 				/* "name:" + "new_passwd" + ":" + "change date" + ":rest of line" */
-				fprintf(new_fp, "%s%s:%u%s\n", name, new_passwd,
+				fprintf(new_fp, "%s%s:%u%s\n", name_colon, new_passwd,
 					(unsigned)(time(NULL)) / (24*60*60), cp);
 			} else {
 				/* "name:" + "new_passwd" + ":rest of line" */
-				fprintf(new_fp, "%s%s%s\n", name, new_passwd, cp);
+				fprintf(new_fp, "%s%s%s\n", name_colon, new_passwd, cp);
 			}
 			changed_lines++;
 		} /* else delete user or group: skip the line */
@@ -238,15 +239,19 @@
 	}
 
 	if (changed_lines == 0) {
-#if ENABLE_FEATURE_DEL_USER_FROM_GROUP
-		if (member)
-			bb_error_msg("can't find %s in %s", member, filename);
+#if ENABLE_FEATURE_ADDUSER_TO_GROUP || ENABLE_FEATURE_DEL_USER_FROM_GROUP
+		if (member) {
+			if (ENABLE_ADDGROUP && applet_name[0] == 'a')
+				bb_error_msg("can't find %s in %s", name, filename);
+			if (ENABLE_DELGROUP && applet_name[0] == 'd')
+				bb_error_msg("can't find %s in %s", member, filename);
+		}
 #endif
 		if ((ENABLE_ADDUSER || ENABLE_ADDGROUP)
 		 && applet_name[0] == 'a' && !member
 		) {
 			/* add user or group */
-			fprintf(new_fp, "%s%s\n", name, new_passwd);
+			fprintf(new_fp, "%s%s\n", name_colon, new_passwd);
 			changed_lines++;
 		}
 	}
@@ -275,6 +280,6 @@
  free_mem:
 	free(fnamesfx);
 	free((char *)filename);
-	free((char *)name);
+	free(name_colon);
 	return ret;
 }
