                     {
                         throw new IllegalOperationError("event " + event.name + " isn't mapped");
                     }
+                    
+                    executeSubmachines(currentState, event);
                     continue;
                 }
 

                    {
                        for each (guard in transition.guards)
                        {
                            if (guard.evaluate(this, event))
                            {
                                if (trueGuard)
                                {

            {
                for each (var fsm:IFsm in state.subMachines)
                {
                    if (fsm is Fsm)
                    {
                        Fsm(fsm).that = this._that;
                    }
                    
                    fsm.pushEvent(event);
                }
            }
