diff --git a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp index 3376249168..2d865b8e74 100644 --- a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp @@ -1917,7 +1917,7 @@ public: else if (vstParamID == JuceVST3EditController::paramPreset) { auto numPrograms = pluginInstance->getNumPrograms(); - auto programValue = roundToInt (value * numPrograms); + auto programValue = roundToInt (value * (jmax (0, numPrograms - 1))); if (numPrograms > 1 && isPositiveAndBelow (programValue, numPrograms) && programValue != pluginInstance->getCurrentProgram())