         // The text component has changed.  Generate an UPDATE_COMPLETE event.
         invalidateDisplayList();
         
+        // We may have gone from empty to non-empty or vice-versa. This should
+        // cause the prompt to show or hide.
+        if (prompt != null && prompt != "" && skin && 
+            (skin.currentState.indexOf("WithPrompt") != -1 && text.length != 0 ||
+            skin.currentState.indexOf("WithPrompt") == -1 && text.length == 0))
+            invalidateSkinState();
+                
         // Redispatch the event that came from the RichEditableText.
         dispatchEvent(event);
     }

     */
    override protected function getCurrentSkinState():String
    {
        if (focusManager && focusManager.getFocus() != focusManager.findFocusManagerComponent(this) && 
            prompt != null && prompt != "")
        {
            if (text.length == 0)

import spark.components.TextSelectionHighlighting;
import spark.core.IDisplayText;
import spark.core.IEditableText;
import spark.core.ISoftKeyboardHintClient;
import spark.events.TextOperationEvent;

use namespace mx_internal;
