Since multiple progids can refer to 1 class we need to check if that
class is isntalled instead of just relying on having it set the
InstallMe variable.

diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 1fa1d23..3dcf63a 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -5690,6 +5690,9 @@
         WCHAR clsid[0x1000];
 
         /* check if this progid is to be installed */
+        package->progids[i].InstallMe =  ((package->progids[i].InstallMe) ||
+              (package->progids[i].ClassIndex >= 0 &&
+              package->classes[package->progids[i].ClassIndex].Installed));
 
         if (!package->progids[i].InstallMe)
         {