         {
             var rendererFactory:IFactory = itemRendererFunction(item);
             
+            // if the function returned a factory, use that.
+            // otherwise, if it returned null, try using the item directly
             if (rendererFactory)
                 myItemRenderer = rendererFactory.newInstance();
+            else if (item is IVisualElement && item is DisplayObject)
+                myItemRenderer = IVisualElement(item);
         }
         
         // 2. if itemRenderer is defined, instantiate one

     */
    public function set typicalItem(value:Object):void
    {
        if (_typicalItem == value)
            return;
        _typicalItem = explicitTypicalItem = value;
        typicalItemChanged = true;

        renderersBeingUpdated = true;
        
        //Set the data    
        if ((renderer is IDataRenderer) && (renderer !== data))
            IDataRenderer(renderer).data = data;
        
        //Newly created renderer with no owner, set owner to this     
