Added a fatalPerror function to simplify error handling.
diff --git a/busybox.h b/busybox.h
index 7f4d55f..e55f17c 100644
--- a/busybox.h
+++ b/busybox.h
@@ -345,6 +345,7 @@
 extern void usage(const char *usage) __attribute__ ((noreturn));
 extern void errorMsg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
 extern void fatalError(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
+extern void fatalPerror(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
 
 const char *modeString(int mode);
 const char *timeString(time_t timeVal);
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 1002c07..6868a91 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -116,8 +116,7 @@
 		 * here anyways... */
 
 		/* free(buf); */
-		perror(inFile);
-		exit(FALSE);
+		fatalPerror("%s", inFile);
 	}
 
 	if (outFile == NULL)
@@ -132,8 +131,7 @@
 
 		/* close(inFd);
 		   free(buf); */
-		perror(outFile);
-		exit(FALSE);
+		fatalPerror("%s", outFile);
 	}
 
 	lseek(inFd, (off_t) (skipBlocks * blockSize), SEEK_SET);
diff --git a/dd.c b/dd.c
index 1002c07..6868a91 100644
--- a/dd.c
+++ b/dd.c
@@ -116,8 +116,7 @@
 		 * here anyways... */
 
 		/* free(buf); */
-		perror(inFile);
-		exit(FALSE);
+		fatalPerror("%s", inFile);
 	}
 
 	if (outFile == NULL)
@@ -132,8 +131,7 @@
 
 		/* close(inFd);
 		   free(buf); */
-		perror(outFile);
-		exit(FALSE);
+		fatalPerror("%s", outFile);
 	}
 
 	lseek(inFd, (off_t) (skipBlocks * blockSize), SEEK_SET);
diff --git a/include/busybox.h b/include/busybox.h
index 7f4d55f..e55f17c 100644
--- a/include/busybox.h
+++ b/include/busybox.h
@@ -345,6 +345,7 @@
 extern void usage(const char *usage) __attribute__ ((noreturn));
 extern void errorMsg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
 extern void fatalError(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
+extern void fatalPerror(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
 
 const char *modeString(int mode);
 const char *timeString(time_t timeVal);
diff --git a/utility.c b/utility.c
index c8a1820..39ed1b6 100644
--- a/utility.c
+++ b/utility.c
@@ -109,6 +109,23 @@
 	exit(EXIT_FAILURE);
 }
 
+extern void fatalPerror(const char *s, ...)
+{
+	va_list p;
+
+	va_start(p, s);
+	fflush(stdout);
+	fprintf(stderr, "%s: ", applet_name);
+	if (s && *s) {
+		vfprintf(stderr, s, p);
+		fputs(": ", stderr);
+	}
+	fprintf(stderr, "%s\n", strerror(errno));
+	va_end(p);
+	fflush(stderr);
+	exit(EXIT_FAILURE);
+}
+
 #if defined BB_INIT
 /* Returns kernel version encoded as major*65536 + minor*256 + patch,
  * so, for example,  to check if the kernel is greater than 2.2.11: