 
         protected function eventLoop():void
         {
-            // with this loop I'm leaving the possibility open to altering
-            // _events outside of pushEvent while still clearing the queue
+            _inEventLoop = true;
+            
             var event:IEvent;
             var transition:ITransition;
             var foundTransition:ITransition;


                // execute submachines with current event
                executeSubmachines(currentState, event);
            }
        }
    }


        protected function executeSubmachines(state:IState, event:IEvent):void
        {
            for each (var fsm:IFsm in state.subMachines)
            {
                fsm.pushEvent(event);
            }
