 
                 // execute submachines with current event
                 executeSubmachines(currentState, event);
+
+                _inEventLoop = false;
             }
         }
     }

        public function pushEvent(value:IEvent):void
        {
            _events.push(value);
            eventLoop();
        }

        protected function executeAction(action:IAction, event:IEvent):void


    public class Fsm implements IFsm
    {
        public var unmappedEventException:Boolean;
        
        /*
          key: IEvent.name
        value: [ITransition]
        */
        private var _eventMap:Object = {};
        private var _events:Vector.<IEvent> = new Vector.<IEvent>();
        private var _currentState:IState;
        private var _inEventLoop:Boolean;

        public function init(value:IState):void
        {
