I’ve reported a couple of times before that there were bogus shift keys inserted into the menu descriptions on the Mac platform.
I’ve finally tracked down the problem to juce_KeyPress.cpp.
#0 0x0040c475 in juce::KeyPress::createFromDescription at juce_KeyPress.cpp:226
#1 0x0040f5ed in juce::KeyPressMappingSet::restoreFromXml at juce_KeyPressMappingSet.cpp:254
Here’s what happens!
 The KeypressMappingState is restored from XML.[/]
 A single key command line “command + z” is read.[/]
 This goes to createFromDescription.[/]
 This successfully reads off the "command + " segment.[/]
 But then it incorrectly calls CharacterFunctions::toUpperCase (desc.getLastCharacter()); resulting in a character code of 90 (‘Z’) instead of 122 (‘z’).[/]
 The Apple menu renderer code sees ‘Z’ and renders that as “[shift symbol] Z”.[/]
 Funky menus![/][/list]
I don’t know whether this code is wrong for Windows and Linux as well.
For the moment, I changed toUpperCase to toLowerCase, but perhaps even it should just be left alone?