Just to make sure, I tested again. I installed a new clean copy of Windows Vista Ultimate RTM, and downloaded the latest updates from the Microsoft website.

I then downloaded and installed Firefox 2.0 and ran it, making sure it was set to be the default browser and to warn in future if it wasn't. I closed it.

I checked .htm/.html/http/https in the registry: they were correctly set to Firefox.

I ran Internet Explorer. It warned me it wasn't the default browser. So I told it to make itself the default and to warn in future if it wasn't. I closed it.

I checked .htm/.html/http/https in the registry: they were still set to Firefox.

I ran Firefox. It didn't warn about not being the default. I checked the Tools/Options/Main dialog and clicked "Check Now" and it told me it was already the default browser.

At this point, both Internet Explorer and Firefox think they're the default browser, and .htm/.html/http/https in the registry are set to use Firefox as the default browser. This means that Internet Explorer and Firefox are setting and/or looking at different registry settings to become the default browser.

I looked at the Shell/Associations/UrlAssociations keys you mentioned. They were set to IE.HTTP both before and after installing/running Firefox.

If there is some logic to the above and there is a definitive method to finding the default browser under Vista, please let me know and I will implement it in mIRC. As far as I know, mIRC is currently using the correct method to determine the default browser that works under all other versions of Windows.