diff --git a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm index 9b7b332b3e..2ee222a9ea 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm @@ -1525,11 +1525,16 @@ private: { err = input->PullInput (flags, timestamp, i, nFrames); - if ((flags & kAudioUnitRenderAction_OutputIsSilence) != 0 || err != noErr) + if (err != noErr) { - input->PrepareBuffer (nFrames); - AudioUnitHelpers::clearAudioBuffer (input->GetBufferList()); + if (input->WillAllocateBuffer()) + input->PrepareBuffer (nFrames); + else + input->PrepareNullBuffer (nFrames); } + + if ((flags & kAudioUnitRenderAction_OutputIsSilence) != 0 || err != noErr) + AudioUnitHelpers::clearAudioBuffer (input->GetBufferList()); } } }