A few versions of iTunes back, upgrades started failing to install for some reason on one of my machines, which I ultimately solved with a Microsoft Fix-It. Whatever arcane magic it did allowed iTunes to be installed again, but ever since then the Apple Software Update program had an annoying behavior: Even though the latest iTunes would install successfully, ASU would keep popping up and telling me that it still needed to be installed… Again. And again.

I tried just about everything I could think of, short of a complete Windows nuke & pave. Web searches, uninstalling all Apple products then terminating with prejudice all turds left on disk and in the registry.. And there was a LOT of stuff on the disk – Appdata, ProgramData, Common Files… Nothing worked.

Today I finally cracked it- I used the Sysinternals ProcMon tool to log the app’s behavior while it determined required updates and also took a look at the Fiddler traces of traffic between it and Apple’s app catalog server.

The key seemed to be that the app was doing a pretty categorical walk through the entire HKCR/Installer/UpgradeCodes branch, each entry in which seems to point to an actual installed app description branch. However, the UpgradeCodes entry that pointed to the installed iTunes app also had a second entry in it that pointed nowhere, probably left behind when things burped the first time. after uninstalling iTunes one more time, only the dead link was left. I deleted it by hand, reinstalled iTunes, and finally, ASU thinks it’s completely up to date. Happy dance!