The problem is that one of the key in the registry did not get update if a person reinstalls firefox 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 (Should 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 at. Click "Find Next."
5. First result: \HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\(bunch of numbers and letters that you are looking for). Click on Old Icon -> FirefoxHTML -> DefaultIcon and then double click on the value "(Default)". The path there should be the mistake. Change the old path to the path you installed Firefox.
That should fix the icon problem for htm, html, shtml, xht, and xhtml files (Associated File Type: Firefox Document).
打开注册表中的HKEY_CLASSES_ROOT\FirefoxHTML\ShellEx\IconHandler,复制那个CLSID串(类似{xxxx-xxxx-xxxx}的东西),然后在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID中查找这个CLSID串,打开Old Icon\FirefoxHTML\DefaultIcon,看到错误路径了吧,修改之。
来源:http://forums.mozillazine.org/viewtopic.php?p=3075576