This patch has been more than half a year in the making. The trouble was always that responsibilities were unclear. The lesson here is that you never, ever, ever use inheritance, whether it be direct (sub-classing) or indirect (mix-in) for sharing code. Ever. It’s just never the right solution. (Except for the Windows < POSIX case. It’s right in that case.) It just confuses everything and makes it very unclear on where things are happening and how. Especially depending on super to do the right thing is never right. Lesson learned.