         protected var _initialState:IState;
         protected var _currentState:IState;
         protected var _inEventLoop:Boolean;
+        protected var _destroyed:Boolean;
         protected var _that:IFsm;
 
         /**

                {
                    // execute exitState action for the current state
                    executeAction(currentState.exitState, event);

                    // execute transition action
                    executeAction(foundTransition.action, event);

                    // complete transition
                    _currentState = foundTransition.to;
                    
                    // execute enterState action for the new state
                    executeAction(currentState.enterState, event);
                }
                else if (noTransitionException)
                {

    import com.phylake.fsm.core.*;
    import com.phylake.util.tryDestroy;
    import flash.errors.IllegalOperationError;

    public class Fsm implements IFsm
    {
