         if (border)
         {
             border.setActualSize(unscaledWidth, unscaledHeight);
-            bm = border is IBorder ?
-                    IBorder(border).borderMetrics : EdgeMetrics.EMPTY;
+            bm = border is IRectangularBorder ?
+                    IRectangularBorder(border).borderMetrics : EdgeMetrics.EMPTY;
         }
         else
         {

            if (t == "")
                t = " ";
    
            return (border && border is IBorder ?
                    IBorder(border).borderMetrics.top :
                    0)  + measureText(t).ascent;
        }
        
        if (!validateBaselinePosition())

import mx.controls.listClasses.IListItemRenderer;
import mx.core.EdgeMetrics;
import mx.core.FlexVersion;
import mx.core.IDataRenderer;
import mx.core.IFlexDisplayObject;
import mx.core.IFlexModuleFactory;
import mx.core.IFontContextComponent;
import mx.core.IIMESupport;
import mx.core.IInvalidating;
import mx.core.IRectangularBorder;
import mx.core.IUITextField;
import mx.core.UIComponent;
import mx.core.UITextField;
