         super.createChildren();
 
         // Create the border first, in the back.
-        if (!border)
-        {
-            var borderClass:Class = getStyle("borderSkin");
-
-            if (borderClass)
-            {
-                border = new borderClass();
-
-                if (border is IFocusManagerComponent)
-                    IFocusManagerComponent(border).focusEnabled = false;
-
-                if (border is ISimpleStyleClient)
-                    ISimpleStyleClient(border).styleName = this;
-
-                addChild(DisplayObject(border));
-            }
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+        {
+	        if (!border)
+	        {
+	            var borderClass:Class = getStyle("borderSkin");
+	
+	            if (borderClass)
+	            {
+	                border = new borderClass();
+	
+	                if (border is IFocusManagerComponent)
+	                    IFocusManagerComponent(border).focusEnabled = false;
+	
+	                if (border is ISimpleStyleClient)
+	                    ISimpleStyleClient(border).styleName = this;
+	
+	                addChild(DisplayObject(border));
+	            }
+	        }
         }
 
         // Next, create the downArrowButton before creating the textInput,

                var paddingBottom:Number = getStyle("paddingBottom");
                
                downArrowButton.move(0, 0);
                border.setActualSize(w, h);
                textInput.setActualSize(w - arrowWidth, textInputHeight);
                textInput.border.visible = false;
                if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0)

            var wh:Number = h - vm.top - vm.bottom;
            downArrowButton.setActualSize(wh, wh);
            downArrowButton.move(w - arrowWidth - vm.right, vm.top);
            if (border)
            	border.setActualSize(w, h);
            textInput.setActualSize(w - arrowWidth, textInputHeight);
        }
        else
