diff --git a/files.c b/files.c
index 2b1c41cd2ade9572d50423de5f6ff73f864f5e1d..5e2df38cbe71250d4444acae74e19eb6346d824e 100644
--- a/files.c
+++ b/files.c
@@ -335,15 +335,12 @@ int write_file(char *name, int tmp)
        to reflect whether or not to link/unlink/rename the file */
     else if (ISSET(FOLLOW_SYMLINKS) || !S_ISLNK(lst.st_mode) || tmp) {
 
-	/* Use O_EXCL if tmp == 1, I suppose */
+	/* Use O_EXCL if tmp == 1.  This is now copied from joe, because
+	   wiggy says so *shrug* */
 	if (tmp)
-	    fd = open(realname, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC,
-		      S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH |
-		      S_IWOTH);
+	    fd = open(realname, O_WRONLY | O_CREAT | O_EXCL, (S_IRUSR|S_IWUSR));
 	else
-	    fd = open(realname, O_WRONLY | O_CREAT | O_TRUNC,
-		      S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH |
-		      S_IWOTH);
+	    fd = open(realname, O_WRONLY | O_CREAT | O_TRUNC, (S_IRUSR|S_IWUSR));
 
 	/* First, just give up if we couldn't even open the file */
 	if (fd == -1) {