I'm trying to remove most BMenu friend classes, by creating a MenuPrivate class which encapsulates all the accesses to the private menu functions/variables. BMenuBar, though, uses most of BMenu private stuff, so I was thinking... instead of adding lots of methods to MenuPrivate, would I break binary compatibility if I changed the "private" keyword in Menu.h to be "protected", so that BMenuBar, being a subclass, could automatically use all those methods ?