diff --git a/src/effects/VST/VSTEffect.cpp b/src/effects/VST/VSTEffect.cpp index be0783ea6..b24d6bdd8 100644 --- a/src/effects/VST/VSTEffect.cpp +++ b/src/effects/VST/VSTEffect.cpp @@ -72,18 +72,23 @@ void RegisterVSTEffects() pm.Open(); - if (gPrefs->Read(wxT("/VST/Rescan"), (long) false) != false) { + bool bScanRequired = false; + if (gPrefs->Read(wxT("/VST/Rescan"), (long)true) != false) { pm.PurgeType(VSTPLUGINTYPE); gPrefs->Write(wxT("/VST/Rescan"), false); gPrefs->Flush(); + bScanRequired = true; } if (!pm.HasType(VSTPLUGINTYPE)) { + // rescan. pm.Close(); - VSTEffect::Scan(); + if( bScanRequired) + VSTEffect::Scan(); pm.Open(); } + EffectManager & em = EffectManager::Get(); wxString path = pm.GetFirstPlugin(VSTPLUGINTYPE);