How is this proposal significantly different from the currently working: interface Base { final void chainMe () { if ( condition ) chainMe(); else doChainMe(); } protected void doChainMe(); } -- Chris NS