
Hi Christophe and all Now I have to put some effort to residing out code using MSM because one of our module where we use MSM has reached it's limits and we won't be able to compile it any more with VC9 32 bit compiler. In our implementation we have several sub state machines (around 20 per main state machine instance at the moment) ( nested in 4 level deep) and over time as we extend the functionality we introduce new sub state machines which are covering new functionality ... We now can not add any more new sub state machines because we can not compile any more :(. So I have decided to split the big state machines with a lot of subs state machines to stand alone small state machine instances and use our dispatching framework to dispatch events between them. This way I will get small compile units. I'm managed to complete a job apart form one problem I have now. I'm not able to generally trigger the exit functions on the current active states of a state machine when it is finished it's execution like when a sub state machine exists to the outer state machine. Is it possible to implement something like stop method on the back end which would call exit on each region current state and than an exit of the state machine whit an event passed as an argument. ? this would help me a lot and it would be similar to the start. other minor thing is it possible to make public this version of start methode in the back_end ? template <class Event> void start(Event const& incomingEvent) Br. Richard