diff -Nuar a/logrotate.c b/logrotate.c
--- a/logrotate.c	2013-08-13 12:47:53.659942291 +0200
+++ b/logrotate.c	2013-08-13 12:58:12.789938813 +0200
@@ -304,15 +304,21 @@
 int createOutputFile(char *fileName, int flags, struct stat *sb, acl_type acl, int force_mode)
 {
     int fd;
-	struct stat sb_create;
-	int acl_set = 0;
+    int acl_set = 0;
+    struct stat sb_create;
+    char template[PATH_MAX + 1];
+    char *fname;
+    mode_t umask_value;
+    snprintf(template, PATH_MAX, "%s/logrotate_temp.XXXXXX", ourDirName(fileName));
+    umask_value = umask(0000);
+    fname = mktemp(template);
+    fd = open(fname, (flags | O_EXCL | O_NOFOLLOW), (S_IRUSR | S_IWUSR) & sb->st_mode);
+    umask(umask_value);
 
-	fd = open(fileName, (flags | O_EXCL | O_NOFOLLOW),
-		(S_IRUSR | S_IWUSR) & sb->st_mode);
 
     if (fd < 0) {
-	message(MESS_ERROR, "error creating output file %s: %s\n",
-		fileName, strerror(errno));
+        message(MESS_ERROR, "error creating unique temp file: %s\n",
+               strerror(errno));
 	return -1;
     }
     if (fchmod(fd, (S_IRUSR | S_IWUSR) & sb->st_mode)) {
@@ -363,6 +369,13 @@
 		}
 	}
 
+    if (rename(template, fileName)) {
+        message(MESS_ERROR, "error renaming temp file to %s: %s\n",
+        fileName, strerror(errno));
+        close(fd);
+        return -1;
+    }
+
     return fd;
 }
 
