The problem is that one of the keys in the registry did not get update if a person reinstallfirefox with a new installation path.
Here's the solution. Remember to backup the registry in case something happen.
1. Open up the Registry Editor thru Run: regedit
2. Look for HKEY_CLASSES_ROOT \ FirefoxHTML \ ShellEx \ IconHandler (Do not delete)
3. Click on the IconHandler and copy (Ctrl + C) the Data Value from the key (shocould be a bunch of numbers and letters which is the CLSID)
4. now find (Ctrl + F) and paste what you copy. uncheck both the "Values" and "Data" and leave "Keys" checked. that's what you are going to look. click "Find Next."
5. first result: \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID \ (bunch of numbers and letters that you are looking ). click on old icon-> firefoxhtml-> defaulticon and then double click on the value "(default )". the path there shocould be the mistake. change the old path to the path you installed Firefox.
That shoshould fix the icon problem for htm, HTML, shtml, xht, and XHTML files (associated file type: Firefox document ).
Open hkey_classes_root \ firefoxhtml \ shellex \ iconhandler in the Registry and copy the CLSID string (something similar to {XXXX-XXXX ), find the CLSID string in the HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID in the registry, open the old icon \ firefoxhtml \ defaulticon, and you will see the Error Path. modify it.
Source: http://forums.mozillazine.org/viewtopic.php? P = 3075576