C++ allows overriding your parent's privates.
With public methods? That seems smelly. In that case, maybe this post should be in the "why didn't somebody tell me" thread.
 Wait... How does Callee not generate an error when it calls a protected function??
In the actual code, Callee is a method on a friend class of Base (but not Derived). Thought it would be simpler to omit that. This isn't code I'd expect anyone to run through a compiler. ;)
[edit2] how are you passing a Derived& to a function that takes a Base*?
Anyway, upon further reflection, this may not have even been the problem. That would be in line with what I get for jumping to conclusions after only 15 minutes.