Dear statecharters, I would like to request help with a problem building a statemachine from states that I derive from simple_state. Here is minimal code that defines two states StateA and StateB and an event cycling between these two: #include <boost/statechart/state_machine.hpp> #include <boost/statechart/simple_state.hpp> #include <boost/statechart/event.hpp> #include <boost/statechart/transition.hpp> namespace sc = boost::statechart; using namespace std; class StateA; struct StateMachine : sc::state_machine< StateMachine, StateA > { void unconsumed_event( const sc::event_base & evt ) { cout << "unconsumed!" << endl; } }; class Event : public sc::event< Event > {}; struct StateA : sc::simple_state< StateA, StateMachine > { typedef sc::transition< Event, StateB > reactions; }; struct StateB : sc::simple_state< StateB, StateMachine > { typedef sc::transition< Event, StateA > reactions; }; ----------------- This works fine as expected with process_event( Event() ). However, I would like to derive the states of my statechart from a class like this: template<class context> struct State : sc::simple_state< State<context>, context > { // Some application-specific things }; struct StateA : State< StateMachine > { typedef sc::transition< Event, StateB > reactions; }; struct StateB : State< StateMachine > { typedef sc::transition< Event, StateA > reactions; }; ----------------- Now, calling process_event( Event() ) does not do anything, except turning the event up at the StateMachine::unconsumed_event() method. I am aware of this one: http://www.boost.org/doc/libs/1_35_0/libs/statechart/doc/faq.html#TemplatedS... but I'm not sure whether this applies in any way to my case, as I don't have any compiler errors. May I be violating some prerequisites here? Thank you for any help you can provide, Stefan.