                 super.invalidateSize();
         }
         
+        /**
+         *  @private
+         *  During virtual layout updateDisplayList() eagerly validates lazily
+         *  created (or recycled) IRs.  Calls to invalidateDisplayList() eventually
+         *  short-circuit but doing so early saves a few percent.
+         */
+        override public function invalidateDisplayList():void
+        {
+            if (!inUpdateDisplayList)
+                super.invalidateDisplayList();
+        }
+
         /**
          *  @private
          */

         *  @private
         *  During virtual layout updateDisplayList() eagerly validates lazily
         *  created (or recycled) IRs.   We don't want changes to those IRs to
         *  invalidate the size of the Grid.
         */
        override public function invalidateSize():void
        {


package spark.components
{
    import flash.display.InteractiveObject;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.geom.Point;
