Ah, thank you. I believe I have been recommended this idiom before and it might even already exist somewhere in my code. I guess my instincts are always to go for the "elegant" solution even though I really have no idea what I'm doing when it comes to things like virtual declarations and the like. But your explanation why adding virtual declarations messes with the memory model makes sense. Oh well, on to the ugly-but-works solution we go. Thanks!