Yet more polish (thanks again to kent robotti for the bug reports).
 -Erik
diff --git a/xargs.c b/xargs.c
index beada7a..433567b 100644
--- a/xargs.c
+++ b/xargs.c
@@ -38,7 +38,7 @@
 	char *args = NULL;
 	char *cmd_to_be_executed = NULL;
 	char traceflag = 0;
-	int len_args=2, len_cmd_to_be_executed, opt;
+	int len_args=0, len_cmd_to_be_executed, opt;
 	pid_t pid;
 	int wpid, status;
 
@@ -69,8 +69,8 @@
 		strcat(cmd_to_be_executed, *argv);
 	}
 
-	args=xrealloc(args, len_args);
-	strcpy(args, " ");
+	//args=xrealloc(args, len_args);
+//	strcpy(args, " ");
 
 	/* Now, read in one line at a time from stdin, and store this 
 	 * line to be used later as an argument to the command */
@@ -112,21 +112,23 @@
 		in_from_stdin = get_line_from_file(stdin);
 	}
 
-	if (traceflag==1) {
-		fprintf(stderr, "%s%s\n", cmd_to_be_executed, args);
-	}
-
 	if ((pid = fork()) == 0) {
 		char *cmd[255];
 		int i=1;
 
-		//printf("argv[0]='%s'\n", cmd_to_be_executed);
+		if (traceflag==1) {
+			fprintf(stderr, "%s ", cmd_to_be_executed);
+		}
 		cmd[0] = cmd_to_be_executed;
 		while (--argc && ++argv && *argv ) {
-			//printf("argv[%d]='%s'\n", i, *argv);
+			if (traceflag==1) {
+				fprintf(stderr, "%s ", *argv);
+			}
 			cmd[i++]=*argv;
 		}
-		//printf("argv[%d]='%s'\n", i, args);
+		if (traceflag==1) {
+			fprintf(stderr, "%s\n", args);
+		}
 		cmd[i++] = args;
 		cmd[i] = NULL;
 		execvp(cmd_to_be_executed, cmd);