     private var _text:String;
     
     private var textField:TextField;
-    private var textFieldSemaphore:int = 1;
+    private var textFieldSemaphore:int = 0;
     
     private var selectionStart:int;
     private var selectionEnd:int;

    {
        if (textFieldSemaphore == 0)
        {
            textField.removeEventListener(MouseEvent.MOUSE_DOWN, onFieldMouseDown);
            textField.removeEventListener(MouseEvent.MOUSE_UP, onStageMouseUp);
            textField.removeEventListener(KeyboardEvent.KEY_DOWN, onFieldKeyDown);
            textField.removeEventListener(KeyboardEvent.KEY_UP, onFieldKeyUp);
            textField.removeEventListener(TextEvent.TEXT_INPUT, onFieldTextInput);
            textField.removeEventListener(Event.CHANGE, onFieldChange);
        }
        textFieldSemaphore++;
    }
}
}

    {
        super();
        this.textField = textField;
        addListeners();
        textField.text = _text = ""; 
    }
    
    public function dispose():void
    {
        removeListeners();
        hideAllCharacters();
        textField = null;
    }

    /**
