--- util-linux-2.11n/fdisk/fdisk.c.orig	Sat Oct  6 16:02:21 2001
+++ util-linux-2.11n/fdisk/fdisk.c	Tue Jan 15 15:29:14 2002
@@ -1921,10 +1924,44 @@ new_partition(void) {
 }
 
 static void
+set_unique_mbr_signature(int fd)
+{
+	unsigned int signature;
+	int rc;
+	struct stat stat;
+	struct timeval tv;
+
+	memset(&stat, 0, sizeof(stat));
+	memset(&tv, 0, sizeof(tv));
+
+	rc = fstat(fd, &stat);
+	if (rc == -1) {
+		perror("stat disk");
+	}
+
+	rc = gettimeofday(&tv, NULL);
+	if (rc == -1) {
+		perror("gettimeofday");
+	}
+		
+	/* Write the time stamp and device number to the disk.
+	   This is likely to be unique per disk per system */
+	signature = (tv.tv_usec << 16) | (stat.st_rdev & 0xFFFF);
+	store4_little_endian(&MBRbuffer[440], signature);
+	return;
+}
+
+static void
 write_table(void) {
 	int i;
+	unsigned int signature;
 
 	if (dos_label) {
+		signature = read4_little_endian(&MBRbuffer[440]);
+		if (!signature) {
+			set_unique_mbr_signature(fd);
+			set_changed(0);
+		}
 		for (i=0; i<3; i++)
 			if(ptes[i].changed)
 				ptes[3].changed = 1;
