Well, it wasn't Dial-a-fix, it wasn't the "unregistration" option, and it wasn't even OLE — it was the new version of mshtml.dll (which comes from MSKB912945). There is a bug in its DllRegisterServer or DllInstallServer which causes it to write many invalid entries into the registry.

Among other errors, it changes the path of mshtml.dll in about 30+ CLSID entries to "%_SYS_MOD_PATH%". If you search your registry for %_SYS_MOD_PATH% and find several entries in HTML-related objects, you are affected. You will also not be able to use System Restore (blank window), Internet Explorer (tries to download the root of a website instead of opening it), Help and Support (hit F1 after clicking on your desktop once – it tries to Open/Save "context.htm"), possibly Event Viewer, and probably many more things that use embedded HTML objects. It also seems to affect reinstalling of Service Pack 2.

The fix is posted below.

The previous version of MSHTML.DLL (which is NOT affected) is 6.0.2900.2802.

6.0.2900.2838 is the version of mshtml.dll that IS affected.

  1. If you do not have a copy of the 6.0.2900.2802 version of MSHTML.DLL, you can download it here from this site (do not download this unless you have SP2 and all post-SP2 updates). It is approximately 3 megabytes.
  2. Copy it to your Windows\System32 directory and overwrite the previous version. If you are not able to do this, close all programs that use embedded HTML objects, including Internet Explorer, Help and Support, System Restore, etc. If you are still unable to overwrite the file, do it in Safe Mode.
  3. Run Dial-a-fix again, and checkmark everything in box #5 and hit GO.

The problem should be solved at this point.

At least I know now that it wasn't me!

"Thank you" to all those who have been patient with me and my software, and have allowed me to obtain system information and files from them.

Again, KB912945 is the update that causes this problem. You can install this update as long as you do not run the Explorer/Shell checkmark in box #5, which causes Dial-a-fix to register the broken file. If you do register the broken version, simply copy the old version over the newer one and register it using Dial-a-fix (or for the techies, regsvr32 mshtml.dll /i)