             
             invalidateDisplayList();
         }
-        else if (instance == track)
-        {
-            tempTrackSize = NaN;                                      
-        }
-    }
-    
-    /**
-     *  @private
-     */
-    override protected function updateDisplayList(unscaledWidth:Number, 
-                                                  unscaledHeight:Number):void
-    {
-        super.updateDisplayList(unscaledWidth, unscaledHeight);
-
+    }
+    
+    /**
+     *  @private
+     */
+    override protected function completeTrackLayout():void
+    {
+        super.completeTrackLayout();
         sizeBufferedArea(valueToPosition(bufferedValue) + thumbSize);
         sizePlayedArea(valueToPosition(value) + thumbSize);
-    }
-    
-    /**
-     *  @private
-     *  Force the component to set itself up correctly now that the
-     *  track is completely loaded.
-     */
-    override protected function track_updateCompleteHandler(event:Event):void
-    {
-        super.track_updateCompleteHandler(event);
-        
-        //TODO: Consider the case where the track moves (like the move
-        //effect). Perhaps this handler should run every time... 
-        if (trackSize != tempTrackSize)
-        {
-            sizeBufferedArea(valueToPosition(bufferedValue) + thumbSize);
-            sizePlayedArea(valueToPosition(value) + thumbSize);
-            tempTrackSize = trackSize;
-        }
     }
     
     /**

     *  @productversion Flex 4
     */
    public var bufferedArea:IVisualElement;
    
    //--------------------------------------------------------------------------
    //
    //  Variables
    //
    //--------------------------------------------------------------------------

    private var tempTrackSize:Number = NaN;
    
    //--------------------------------------------------------------------------
    //

    protected function sizeBufferedArea(bufferedAreaSize:Number):void
    {
        if (bufferedArea)
            bufferedArea.setLayoutBoundsSize(Math.round(bufferedAreaSize), NaN);
    }
    
    /**
