
There are several reasons to this and it took me a while to figure out what was happening. The first one is that there are 2 errors in the example: RunningStateMachine::Inner1::direct<RunningStateMachine_::Inner1_> should be: RunningStateMachine::direct<RunningStateMachine_::Inner1>
As you are directly entering RunningStateMachine, not Inner1.
actually I have made 2 mistakes :). One above the second is that I used Inner1_ which is a frontend instead of Inner1 caused that the on initial transition is getting triggered after entry of Inner1
Ah yes I forgot that I corrected that one too.
I found it even strange that it compiles when the frontend of and inner state machine is used in the outer state machine transition table.
This surprises me a little because I tried with g++ 4.4 to replace in the corrected example Inner1 by Inner1_ in SM1's table and the compiler correctly complained. What did you do?