             return false;
         element.visible = false;
         
+        // Reset back to (0,0), otherwise when the element is reused
+        // it will be validated at its last layout size which causes
+        // problems with text reflow.
+        element.setLayoutBoundsSize(0, 0, false);        
+        
         const factory:IFactory = elementToFactoryMap[element]; 
         if (!factory)
             return false;

                freeGridElement(renderer);     
            }
            
			if (columnIndex == startIndex)
				width -= startCellX + cellWidth - startX;
			else
				width -= cellWidth + columnGap;
		}
        
        return indices;

        
        var indices:Vector.<int> = null;  // return value       

		for (var columnIndex:int = startIndex; (isNaN(width) || (width > 0)) && (columnIndex < columnCount); columnIndex++)
		{
            var cellHeight:Number = gridDimensions.getTypicalCellHeight(columnIndex);
			var cellWidth:Number = gridDimensions.getTypicalCellWidth(columnIndex);
