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

    {
        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++;
    }
}
}

        textFieldSemaphore--;
        if (textFieldSemaphore == 0)
        {
            addListeners();
        }
    }

