diff --git a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp index 121d160514..93b4b65710 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp @@ -1634,7 +1634,11 @@ public: bool hasEditor() const override { - ComSmartPtr view (tryCreatingView()); //N.B.: Must use a ComSmartPtr to not delete the view from the plugin permanently! + // (if possible, avoid creating a second instance of the editor, because that crashes some plugins) + if (getActiveEditor() != nullptr) + return true; + + ComSmartPtr view (tryCreatingView()); return view != nullptr; }