Index: tools/mktmpfs.py
===================================================================
--- tools/mktmpfs.py	(revision 5a55ae64e2b5a9a9e0e8693afc07cafb38e8ec5e)
+++ tools/mktmpfs.py	(revision 10ef329a86471ef42e84a0db45f6e6b1b10d45bd)
@@ -49,5 +49,8 @@
 		return
 	
-	outf = file(sys.argv[2], "w");
+	header_size = 18
+	payload_size = 0
+	outf = file(sys.argv[2], "w")
+	outf.write(struct.pack("<" + ("%d" % header_size) + "x"))
 	
 	for root, dirs, files in os.walk(path):
@@ -56,4 +59,5 @@
 			canon = os.path.join(relpath, name)
 			outf.write(struct.pack("<BL" + ("%d" % len(canon)) + "s", 1, len(canon), canon))
+			payload_size += 5 + len(canon)
 			
 			fn = os.path.join(root, name)
@@ -61,4 +65,5 @@
 			rd = 0;
 			outf.write(struct.pack("<L", size))
+			payload_size += 4
 			
 			inf = file(fn, "r")
@@ -66,4 +71,5 @@
 				data = inf.read(4096);
 				outf.write(data)
+				payload_size += len(data)
 				rd += len(data)
 			inf.close()
@@ -72,5 +78,8 @@
 			canon = os.path.join(relpath, name)
 			outf.write(struct.pack("<BL" + ("%d" % len(canon)) + "s", 2, len(canon), canon))
+			payload_size += 5 + len(canon)
 	
+	outf.seek(0)
+	outf.write(struct.pack("<4sBBLQ", "HORD", 1, 1, header_size, payload_size))
 	outf.close()
 
