Index: util/options/build_opt_tbl.c
===================================================================
--- util/options/build_opt_tbl.c	(Revision 4951)
+++ util/options/build_opt_tbl.c	(Arbeitskopie)
@@ -21,6 +21,19 @@
 /* This array is used to isolate bits that are to be changed in a byte */
 static unsigned char clip[9]={0,1,3,7,0x0f,0x1f,0x3f,0x7f,0xff};
 
+#ifdef WIN32
+#include <fcntl.h>
+char* mkstemp(char* name) {
+	static char val='0';
+	char *c=name;
+	while (*c!='X') c++;
+	*c=val++;
+	return open(name,O_CREAT | O_RDWR);
+}
+#define UNLINK(x) unlink(x)
+#else
+#define UNLINK(x)
+#endif
 
 /* This routine loops through the entried and tests if any of the fields overlap
 	input entry_start = the memory pointer to the start of the entries.
@@ -531,6 +544,7 @@
         	}
 
         	fclose(fp);
+		UNLINK(option);
 		if (rename(tmpfilename, option)) {
 			fprintf(stderr, "Error - Could not write %s: ", option);
 			perror(NULL);
@@ -584,6 +598,7 @@
 		}
 		fclose(fp);
 
+		UNLINK(header);
 		if (rename(tmpfilename, header)) {
 			fprintf(stderr, "Error - Could not write %s: ", header);
 			perror(NULL);
