--- ---

Whenever changes are made to the system's icons you must notify Windows of this. It (Windows) alone does not check this, you have to call code manually.

uses
  ShlObj;
...
  SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
...