I've got a simple sip file that has: struct Foo { %TypeHeaderCode #include "foo.h" %End virtual Foo(); }; struct Bar: Foo { %TypeHeaderCode #include "foo.h" %End virtual Bar(); }; That should be valid code though, right?