      */
     private function allocateGridElement(factory:IFactory):IVisualElement
     {
+        createdGridElement = false;
         const elements:Vector.<IVisualElement> = freeElementMap[factory] as Vector.<IVisualElement>;
         if (elements)
         {

                    var dataItem:Object = getDataProviderItem(rowIndex);
                    column = getGridColumn(colIndex);
                    var factory:IFactory = itemToRenderer(column, dataItem);
                    renderer = allocateGridElement(factory) as IGridItemRenderer;                   
                }
            
                rendererLayer.addGridElement(renderer);

    //
    //  Grid Elements
    //
    //-------------------------------------------------------------------------- 
    
    /**
     *  @private
     *  Let the allocateGridElement() caller know if the returned element was 
     *  created or recycled.
     */
    private var createdGridElement:Boolean = false;
    
    private function createGridElement(factory:IFactory):IVisualElement
    {
        createdGridElement = true;
        const element:IVisualElement = factory.newInstance() as IVisualElement;
        elementToFactoryMap[element] = factory;
        return element;
