Point me out if I understand you incorrectly. Since the files under System32 and the files under WinSxS are hard links, and based on the definition of hard link, once the WinSxS files change, the System32 files change automatically, since they are pointing to the same data block. Therefore you will never get an updated file in System32 while still have the original one in WinSxS. I'm not Microsoft people. In my opinion, WinSxS is what they use to do package and version controls, as well as some level of backup. As the softwares are becoming bigger and bigger, we need multiple library files to collaborate with each other, and we need to make sure they always have the compatible version. Without WinSxS, the system cannot have two "msvcp.dll" files with different versions in System32. Rather, they have to name them msvcp80.dll and msvcp90.dll respectively, which is not scalable solution. I mean, WinSxS is not a bad solution, and it does not take extra space. I do not know how bad does Vista support hard links (since I never had problem with it), but removing dupe in WinSxS is not always good. Use it when you are sure you will not need those files.