diff --git a/modules/juce_audio_plugin_client/AU/AudioUnitSDK/AUScopeElement.cpp b/modules/juce_audio_plugin_client/AU/AudioUnitSDK/AUScopeElement.cpp index 571a24a759..6ff526394b 100644 --- a/modules/juce_audio_plugin_client/AU/AudioUnitSDK/AUScopeElement.cpp +++ b/modules/juce_audio_plugin_client/AU/AudioUnitSDK/AUScopeElement.cpp @@ -386,8 +386,12 @@ std::vector AUScope::RestoreElementNames(CFDictionaryRef inNam if ((elName != nullptr) && (CFGetTypeID(elName) == CFStringGetTypeID())) { AUElement* const element = GetElement(intKey); if (element != nullptr) { - element->SetName(elName); - restoredElements.push_back(intKey); + auto* const currentName = element->GetName().get(); + + if (currentName == nullptr || CFStringCompare(elName, currentName, 0) != kCFCompareEqualTo) { + element->SetName(elName); + restoredElements.push_back(intKey); + } } } } diff --git a/modules/juce_audio_plugin_client/AU/AudioUnitSDK/JUCE CHANGES.txt b/modules/juce_audio_plugin_client/AU/AudioUnitSDK/JUCE CHANGES.txt new file mode 100644 index 0000000000..df6e3ca7dc --- /dev/null +++ b/modules/juce_audio_plugin_client/AU/AudioUnitSDK/JUCE CHANGES.txt @@ -0,0 +1 @@ +AUScopeElement.cpp - The method AUScope::RestoreElementNames was changed to only call AUElement::SetName if the name actually changed (instead of always). This is a workaround for a Ableton Live 11 bug which crashes on duplicating AUs with more than 16 output busses.