         
         measuredHeight = paddingTop + textHeight + paddingBottom;
     }
+    
+    /**
+     *  @private
+     *  Utility function used to get the value of any of the left, right, top,
+     *  or bottom padding styles modified to take any internal padding of the
+     *  platform text control into account.
+     */
+    protected function getCorrectedPadding(paddingStyleName:String):Number
+    {
+        var padding:Number = getStyle(paddingStyleName);
+        
+        if (textDisplay)
+        {
+            var internalPadding:Point = textDisplay.calculateInternalPadding();
+            
+            if (paddingStyleName == "paddingLeft" || paddingStyleName == "paddingRight")
+                padding = Math.max(0, padding - internalPadding.x);
+            else if (paddingStyleName == "paddingTop" || paddingStyleName == "paddingBottom")
+                padding = Math.max(0, padding - internalPadding.y);
+        }
+        
+        return padding;
+    }
 
     //--------------------------------------------------------------------------
     //

     *  Create a control appropriate for displaying the prompt text in a mobile
     *  input field.
     */
    protected function createPromptDisplay():StyleableStageText
    {
        var prompt:StyleableStageText = new StyleableStageText();
        
        prompt.styleName = this;
        prompt.editable = false;
        prompt.commitStyles();
        
        // StageText objects appear in their own layer on top of the display
        // list. So, since StyleableStageText uses a StageText for display, it
        // goes on top as well. It isn't possible to put StageText objects under
        // any non-Stage objects.
        addChild(prompt);
        
        return prompt;

        else if (!showPrompt && promptDisplay)
        {
            promptDisplay.removeEventListener(FocusEvent.FOCUS_IN, promptDisplay_focusInHandler);
            removeChild(promptDisplay as DisplayObject);
            promptDisplay = null;
        }
        
