diff --git a/main.c b/main.c
index 18daafb..4e6a31e 100644
--- a/main.c
+++ b/main.c
@@ -70,6 +70,7 @@
 	toys.argv = argv;
 	if (NEED_OPTIONS && which->options) get_optflags();
 	else toys.optargs = argv+1;
+	if (which->flags & TOYFLAG_UMASK) toys.old_umask = umask(0);
 }
 
 // Run a toy.
diff --git a/toys.h b/toys.h
index f1f83c6..14c6cf2 100644
--- a/toys.h
+++ b/toys.h
@@ -61,6 +61,7 @@
 #define TOYMASK_LOCATION ((1<<4)-1)
 
 #define TOYFLAG_NOFORK   (1<<4)
+#define TOYFLAG_UMASK    (1<<5)
 
 extern struct toy_list {
         char *name;
@@ -79,6 +80,7 @@
 	char **optargs;          // Arguments left over from get_optflags()
 	int optc;                // Count of optargs
 	int exithelp;            // Should error_exit print a usage message first?  (Option parsing.)
+	int old_umask;
 } toys;
 
 // One big temporary buffer, for use by applets (not library functions).
diff --git a/toys/mdev.c b/toys/mdev.c
index dff2e5c..6e69a77 100644
--- a/toys/mdev.c
+++ b/toys/mdev.c
@@ -7,7 +7,7 @@
  *
  * Not in SUSv3.
 
-USE_MDEV(NEWTOY(mdev, "s", TOYFLAG_USR|TOYFLAG_BIN))
+USE_MDEV(NEWTOY(mdev, "s", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_UMASK))
 
 config MDEV
 	bool "mdev"
@@ -166,7 +166,6 @@
 	}
 
 	sprintf(temp, "/dev/%s", device_name);
-	umask(0);
 	if (mknod(temp, mode | type, makedev(major, minor)) && errno != EEXIST)
 		perror_exit("mknod %s failed", temp);
 
diff --git a/toys/mkfifo.c b/toys/mkfifo.c
index 0f57ca5..39ec51a 100644
--- a/toys/mkfifo.c
+++ b/toys/mkfifo.c
@@ -4,7 +4,7 @@
  *
  * See http://www.opengroup.org/onlinepubs/009695399/utilities/mkfifo.html
 
-USE_MKFIFO(NEWTOY(mkfifo, "<1m:", TOYFLAG_BIN))
+USE_MKFIFO(NEWTOY(mkfifo, "<1m:", TOYFLAG_BIN|TOYFLAG_UMASK))
 
 config MKFIFO
 	bool "mkfifo"
@@ -40,7 +40,6 @@
 			error_exit("Invalid mode");
 	} else mode = 0644;
 
-	umask(0);
 	for (i = 0; (arg = toys.optargs[i]); i++)
 		if (mkfifo(arg, mode))
 			perror_exit(arg);
diff --git a/toys/touch.c b/toys/touch.c
index c8cba76..bead28f 100644
--- a/toys/touch.c
+++ b/toys/touch.c
@@ -6,7 +6,7 @@
  *
  * See http://www.opengroup.org/onlinepubs/009695399/utilities/touch.html
 
-USE_TOUCH(NEWTOY(touch, "l#t:r:mca", TOYFLAG_BIN))
+USE_TOUCH(NEWTOY(touch, "l#t:r:mca", TOYFLAG_BIN|TOYFLAG_UMASK))
 
 config TOUCH
 	bool "touch"
@@ -86,9 +86,7 @@
 
 		if (stat(arg, &sb)) {
 			if (!(toys.optflags & OPT_NOCREATE)) {
-				int temp = umask(0);
 				xcreate(arg, O_CREAT, 0644);
-				if (CFG_TOYBOX_FREE) umask(temp);
 				if (stat(arg, &sb))
 					goto error;
 			}
diff --git a/toys/toysh.c b/toys/toysh.c
index e280068..17467fa 100644
--- a/toys/toysh.c
+++ b/toys/toysh.c
@@ -296,6 +296,7 @@
 		tl->toy_main();
 		cmd->pid = toys.exitval;
 		free(toys.optargs);
+		if (toys.old_umask) umask(toys.old_umask);
 		memcpy(&toys, &temp, sizeof(struct toy_context));
 	} else {
 		int status;
