Sorry if this sounds confusing. I really need some help here. I've only had Windows 7 installed for a few weeks now, but I've already got most of my software and games installed and working. Based on some bad advice on another forum, trying to solve a problem with getting a game to run, I uninstalled all versions of Microsoft Visual C++. According to the event viewer, here are the versions that were installed, and each of them were listed separately under "uninstall a program" in control panel: Microsoft Visual C++ 2005 Redistributable. Product Version: 8.0.56336 Microsoft Visual C++ 2005 Redistributable. Product Version: 8.0.50727.42 Microsoft Visual C++ 2005 Redistributable. Product Version: 8.0.59193 Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.17. Product Version: 9.0.30729. Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148. Product Version: 9.0.30729.4148 Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022. Product Version: 9.0.21022 I realize now that that was stupid, and I need all these different versions for different programs to run. So I downloaded the 2005, 2005 SP1, 2005 ATL update, 2008, and 2008 SP1 versions directly from Microsoft, and installed them, starting with 2005, then the 2005 sp1, then the ATL update. But what I noticed was happening was that the updates were overwriting each other, so as I was checking the "uninstall a program" to see how it was showing up after each update, instead of them showing up individually like they were originally, now it was only showing 1 version of 2005 and 1 version of 2008, with each update just changing the version number, instead of keeping older versions. From what I've read, there is a winsxs folder that should be keeping all the different versions installed separately, so the different versions of the files will not be overwritten by updates, to keep compatibility with other programs that may need older versions of the files. So isn't this going to be a problem if the updates are just overwriting each other now that I'm installing them separately? To try it a different way, I uninstalled them again, and installed just the 2005 and 2008 first version, and then did a Windows Update. It then said there were 2 critical updates, 1 for the 2005 SP1 and 1 for the 2008 SP1. Except I hadn't installed the SP1 updates yet, just the first releases of each. Well I let it update itself, and then I checked back to see what was showing up now. Here is what was listed after the windows update: Microsoft Visual C++ 2005 ATL Update kb973923 - x86 8.0.50727.4053 Microsoft Visual C++ 2005 Redistributable Microsoft Visual C++ 2008 ATL Update kb973924 - x86 9.0.30729.4148 Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022 But that's not what was there before. How can I get these other versions to install and show up without overwriting existing versions? I was hoping Windows Update would install all available versions. Maybe some of the software I've installed came with some of the versions, but I have no idea what software came with what versions. I'm afraid now that some of my software will be relying on older versions that have been removed, but I won't know until I try running every program. Is there some way to find out what software is relying on what versions? Is that information kept somewhere in the winsxs folder maybe? If I knew what software would be affected, I'd just reinstall that software. But I have loads of small programs that I dread reinstalling all over again. So what can I do now to get things back the way they were? I've tried system restore twice, and both times it failed and said no settings were changed. I just spent 3 weeks installing everything, there must be a way to get these back without starting from scratch?