         g.invalidateSize();
         g.invalidateDisplayList();
     }
-        
+
+    /**
+     *  React to indications that measurements are not final
+     *  and should not be cached
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    private function measuredSizePreliminaryHandler(event:FlexEvent):void
+    {
+        event.target.addEventListener(FlexEvent.MEASURED_SIZE_FINAL, measuredSizeFinalHandler, false, 0, true);
+		if (!notFinalTargets)
+			notFinalTargets = [];
+        notFinalTargets.push(event.target);
+        dontCacheMeasurements = true;
+    }
+    
+    /**
+     *  React to indications that measurements are final
+     *  and can be cached
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    private function measuredSizeFinalHandler(event:FlexEvent):void
+    {
+		if (notFinalComponents)
+        	delete notFinalComponents[event.target];
+    }
+    
     //--------------------------------------------------------------------------
     //
     //  Drop methods

        dispatchEvent(new Event("indexInViewChanged"));
    }
        
    //--------------------------------------------------------------------------
    //
    //  Methods
    //
    //--------------------------------------------------------------------------
    
    /**
     *  @private

            // paddingTop is already taken into account as the majorAxisOffset of the llv   
            // Measured size according to the cached actual size:
            var measuredHeight:Number = llv.end(measuredEltCount - 1) + paddingBottom;
            var measuredWidth:Number = llv.minorSize + hPadding;
            
            // For the live ItemRenderers use the preferred size
            // instead of the cached actual size:
