NT/base/fs/utils/regedit/regporte.c:471 Sit back, and I will tell ye a tale of woe. Win95 and NT 4 shipped with regedit compiled ANSI. There are a couple of registry types on NT (namely REG_EXPAND_SZ and REG_MULTI_SZ) that weren't on Win95, and which regedit doesn't really understand. regedit treats these registry types as hex binary streams. You can probably see where this is going. If you exported, say your user TEMP environment variable on NT 4 using regedit, you'd get something that looked like this: REGEDIT4 [HKEY_CURRENT_USER\Environment] "TEMP"=hex(2):25,53,59,53,54,45,4d,44,52,49,56,45,25,5c,53,48,54,65,6d,70,00 ...a nice, null-terminated ANSI string. Nice, that is, until we decided to compile regedit UNICODE for NT 5. A unicode regedit exports your user TEMP variable like this: REGEDIT4 [HKEY_CURRENT_USER\Environment] "TEMP"=hex(2):25,00,53,00,59,00,53,00,54,00,45,00,4d,00,44,00,52,00,49,00,56,\ 00,45,00,25,00,5c,00,53,00,48,00,54,00,65,00,6d,00,70,00,00,00 ...mmmm. Unicode. Of course, a unicode regedit also expects anything it imports to have all those interspersed zeroes, too. Otherwise, it dumps garbage into your registry. All it takes is a -DUNICODE, and regedit is suddenly incompatible with the thousdands of existing .reg files out there. So just bump the version in the header to REGEDIT5 and be done with it, right? Wrong. The regedit on Win95 and NT 4 looks at the first character after the string "REGEDIT" and compares it to the digit "4". If that character is anything other than the digit "4", the parser assumes it is looking at a Windows 3.1 file. Yep. There will only ever be two formats, right? Just Win95 and Win3.1. That's all the world needs. So a completely new .reg file header had to be invented, so that the older, regedits of the world would simply regect the new, unicodized .reg files outright. An NT 5 .reg file, exporting your user TEMP variable, looks like this: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Environment] "TEMP"=hex(2):25,00,53,00,59,00,53,00,54,00,45,00,4d,00,44,00,52,00,49,00,56,\ 00,45,00,25,00,5c,00,53,00,48,00,54,00,65,00,6d,00,70,00,00,00 The parser is still not very good, but it does bother to convert that 5.00 into a version number, so that future generations can bump it to 5.50 or 6.00, and the regedit 5.00 that shipped with NT 5.00 will properly reject the files.