                     {
                         for each (guard in transition.guards)
                         {
-                            if (guard.evaluate(_that || this, event))
+                            if (guard.evaluate(_guardFsm || this, event))
                             {
                                 if (trueGuard)
                                 {

        {
            if (action)
            {
                action.execute(_that || this, event);
            }
        }


        public var unmappedEventException:Boolean;
        public var noTransitionException:Boolean;

        /**
         *   key: IEvent.name
         * value: [ITransition]
         */
        protected var _eventMap:Object = {};
        protected var _events:Vector.<IEvent> = new Vector.<IEvent>;
        protected var _states:Vector.<IState> = new Vector.<IState>;
