         downArrow.validateSize();
         scrollTrack.validateSize();
         
-        if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0)
-        {
-            _minWidth = scrollThumb ? scrollThumb.getExplicitOrMeasuredWidth() : 0;
-            _minWidth = Math.max(scrollTrack.getExplicitOrMeasuredWidth(), upArrow.getExplicitOrMeasuredWidth(),
-                                 downArrow.getExplicitOrMeasuredWidth(), _minWidth); 
-        }
-        else
-        {
-            _minWidth = upArrow.getExplicitOrMeasuredWidth();
-        }
+        _minWidth = scrollThumb ? scrollThumb.getExplicitOrMeasuredWidth() : 0;
+        _minWidth = Math.max(scrollTrack.getExplicitOrMeasuredWidth(), upArrow.getExplicitOrMeasuredWidth(),
+                             downArrow.getExplicitOrMeasuredWidth(), _minWidth);
         _minHeight = upArrow.getExplicitOrMeasuredHeight() +
                      downArrow.getExplicitOrMeasuredHeight();
     }

import flash.ui.Keyboard;
import flash.utils.Timer;
import mx.controls.Button;
import mx.core.FlexVersion;
import mx.core.UIComponent;
import mx.core.mx_internal;
import mx.events.FlexEvent;

       
        upArrow.setActualSize(upArrow.getExplicitOrMeasuredWidth(),
                              upArrow.getExplicitOrMeasuredHeight());
        upArrow.move((virtualWidth - upArrow.width) / 2, 0);

        scrollTrack.setActualSize(scrollTrack.getExplicitOrMeasuredWidth(), virtualHeight);

        scrollTrack.x = (virtualWidth - scrollTrack.width) / 2;
        scrollTrack.y = 0;        
     
        downArrow.setActualSize(downArrow.getExplicitOrMeasuredWidth(),
                                downArrow.getExplicitOrMeasuredHeight());
        downArrow.move((virtualWidth - downArrow.width) / 2,
                        virtualHeight - downArrow.getExplicitOrMeasuredHeight());


        setScrollProperties(pageSize, minScrollPosition,
