         if (!thumb || !track)
             return;
 
-        var trackPos:Number = track.getLayoutBoundsY();
         var trackSize:Number = track.getLayoutBoundsHeight();
         var range:Number = maximum - minimum;
 
-        var thumbPos:Number = 0;
+        var thumbPos:Point;
+        var thumbPosTrackY:Number = 0;
+        var thumbPosParentY:Number = 0;
         var thumbSize:Number = trackSize;
         if (range > 0)
         {

            {
                thumbSize = thumb ? thumb.height : 0;
            }
            thumbPos = (value - minimum) * ((trackSize - thumbSize) / range);
        }

        if (getStyle("fixedThumbSize") === false)
            thumb.setLayoutBoundsSize(NaN, thumbSize);
        if (getStyle("autoThumbVisibility") === true)
            thumb.visible = thumbSize < trackSize;
        thumb.setLayoutBoundsPosition(thumb.getLayoutBoundsX(), Math.round(trackPos + thumbPos));
    }
    
    


package spark.components
{
import flash.geom.Point;

import mx.core.mx_internal;
import mx.events.PropertyChangeEvent;
import mx.events.ResizeEvent;
