Hi Dick I've tried to reproduce the problem with the code you have sent me by private email. For starters, I get exactly the same output whether or not line 14 in the_many_impl.cpp is commented out or not. I can't say I've fully understood your code, but it seems as though the state classes for both state machines have the same names and are declared in the same namespace, which would result in an ODR violation. It seems the linker should complain, so it might well be that I'm missing something. For now, may I ask you to give the state classes for the two machines different names and see whether that resolves the problem? If not, please let me know. Regards, -- Andreas Huber When replying by private email, please remove the words spam and trap from the address shown in the header.