Stuf
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 9468cdd..39c6a62 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -162,8 +162,13 @@
     intotal = 0;
     outTotal = 0;
 
-    if (inFile == NULL)
-	inFd = STDIN;
+    if (inFile == NULL) {
+	struct stat statBuf;
+	inFd = fileno(stdin);
+	if (fstat(inFd, &statBuf) < 0)
+	    exit( FALSE);
+	count = statBuf.st_size;
+    }
     else
 	inFd = open (inFile, 0);
 
@@ -174,7 +179,7 @@
     }
 
     if (outFile == NULL)
-	outFd = STDOUT;
+	outFd = fileno(stdout);
     else
 	outFd = creat (outFile, 0666);
 
@@ -191,6 +196,8 @@
 	if (inCc < 0) {
 	    perror (inFile);
 	    goto cleanup;
+	} else if (inCc == 0) {
+	    goto cleanup;
 	}
 	intotal += inCc;
 	cp = buf;
@@ -202,6 +209,8 @@
 	    if (outCc < 0) {
 		perror (outFile);
 		goto cleanup;
+	    } else if (outCc == 0) {
+		goto cleanup;
 	    }
 
 	    inCc -= outCc;
diff --git a/coreutils/ls.c b/coreutils/ls.c
index f09cbbc..0558bb2 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -475,7 +475,7 @@
 
 	/* choose a display format */
 	if (display_fmt == FMT_AUTO)
-		display_fmt = isatty(STDOUT_FILENO) ? FMT_COLUMNS : FMT_SINGLE;
+		display_fmt = isatty(fileno(stdout)) ? FMT_COLUMNS : FMT_SINGLE;
 	if (argi < argc - 1)
 		opts |= DISP_DIRNAME; /* 2 or more items? label directories */
 #ifdef FEATURE_AUTOWIDTH
diff --git a/coreutils/mkdir.c b/coreutils/mkdir.c
index 28315ca..2cd1788 100644
--- a/coreutils/mkdir.c
+++ b/coreutils/mkdir.c
@@ -85,8 +85,9 @@
 	    fprintf(stderr, "%s: File exists\n", *argv);
 	    exit( FALSE);
 	}
-	if (parentFlag == TRUE)
+	if (parentFlag == TRUE) {
 	    createPath(*argv, mode);
+	}
 	else { 
 	    if (mkdir (*argv, mode) != 0) {
 		perror(*argv);
diff --git a/coreutils/rm.c b/coreutils/rm.c
index ba5d30e..ee434fb 100644
--- a/coreutils/rm.c
+++ b/coreutils/rm.c
@@ -31,8 +31,8 @@
 static const char* rm_usage = "rm [OPTION]... FILE...\n\n"
 "Remove (unlink) the FILE(s).\n\n"
 "Options:\n"
-"\t-f\tremove existing destinations, never prompt\n"
-"\t-r\tremove the contents of directories recursively\n";
+"\t-f\t\tremove existing destinations, never prompt\n"
+"\t-r or -R\tremove the contents of directories recursively\n";
 
 
 static int recursiveFlag = FALSE;
@@ -72,6 +72,7 @@
     while (**argv == '-') {
 	while (*++(*argv))
 	    switch (**argv) {
+	    case 'R':
 	    case 'r':
 		recursiveFlag = TRUE;
 		break;