diff --git a/Makefile b/Makefile
index b6a9b15..3562832 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 1
 PATCHLEVEL = 17
-SUBLEVEL = 3
+SUBLEVEL = 4
 EXTRAVERSION =
 NAME = Unnamed
 
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 1197f7d..07bb6af 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -184,7 +184,7 @@
 	LIST_INO,                   /* i */
 	LIST_LONG | STYLE_LONG,     /* l - remember LS_DISP_HR in mask! */
 	LIST_SHORT | STYLE_SINGLE,  /* 1 */
-	0,                          /* g (don't show group) - handled via OPT_g */
+	0,                          /* g (don't show owner) - handled via OPT_g */
 	LIST_ID_NUMERIC,            /* n */
 	LIST_BLOCKS,                /* s */
 	DISP_ROWS,                  /* x */
@@ -621,7 +621,7 @@
 	if (all_fmt & LIST_ID_NAME) {
 		if (option_mask32 & OPT_g) {
 			column += printf("%-8.8s ",
-				get_cached_username(dn->dstat.st_uid));
+				get_cached_groupname(dn->dstat.st_gid));
 		} else {
 			column += printf("%-8.8s %-8.8s ",
 				get_cached_username(dn->dstat.st_uid),
@@ -631,7 +631,7 @@
 #endif
 	if (all_fmt & LIST_ID_NUMERIC) {
 		if (option_mask32 & OPT_g)
-			column += printf("%-8u ", (int) dn->dstat.st_uid);
+			column += printf("%-8u ", (int) dn->dstat.st_gid);
 		else
 			column += printf("%-8u %-8u ",
 					(int) dn->dstat.st_uid,
diff --git a/coreutils/sort.c b/coreutils/sort.c
index 5c3fa1a..237ac08 100644
--- a/coreutils/sort.c
+++ b/coreutils/sort.c
@@ -412,7 +412,7 @@
 #if ENABLE_FEATURE_SORT_BIG
 	/* Open output file _after_ we read all input ones */
 	if (option_mask32 & FLAG_o)
-		xmove_fd(xopen3(str_o, O_WRONLY, 0666), STDOUT_FILENO);
+		xmove_fd(xopen3(str_o, O_WRONLY|O_CREAT|O_TRUNC, 0666), STDOUT_FILENO);
 #endif
 	flag = (option_mask32 & FLAG_z) ? '\0' : '\n';
 	for (i = 0; i < linecount; i++)
diff --git a/libbb/unicode.c b/libbb/unicode.c
index 5a657b2..afa5a1b 100644
--- a/libbb/unicode.c
+++ b/libbb/unicode.c
@@ -1006,7 +1006,7 @@
 			}
 		}
 		if (stats)
-			stats->byte_count = stats->unicode_count = (d - dst);
+			stats->byte_count = stats->unicode_count = stats->unicode_width = (d - dst);
 		return dst;
 	}
 
diff --git a/networking/dnsd.c b/networking/dnsd.c
index 1a99040..81bc939 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -388,7 +388,7 @@
 	query_len = strlen(query_string) + 1;
 	/* may be unaligned! */
 	unaligned_type_class = (void *)(query_string + query_len);
-	query_len += sizeof(unaligned_type_class);
+	query_len += sizeof(*unaligned_type_class);
 	/* where to append answer block */
 	answb = (void *)(unaligned_type_class + 1);
 
diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c
index d771a60..7905a73 100644
--- a/networking/libiproute/iproute.c
+++ b/networking/libiproute/iproute.c
@@ -791,8 +791,8 @@
 				}
 				req.r.rtm_dst_len = addr.bitlen;
 			}
-			argv++;
 		}
+		argv++;
 	}
 
 	if (req.r.rtm_dst_len == 0) {
