      *  @private
      */
     override protected function commitProperties():void
-    {
-        super.commitProperties();
-        
+    { 
         if (dataProviderChanged || itemRendererChanged)
         {
             dataProviderChanged = false;
             itemRendererChanged = false;
             initializeDataProvider();
             
-            // maskChanged = true; TODO (rfrishbe): need this maskChanged?
-        }
+            mx_internal::maskChanged = true;
+        }
+        
+        // Need to initializeDataProvider before calling super.commitProperties
+    	// initializeDataProvider removes all of the display list children.
+    	// GroupBase's commitProperties reattaches the mask
+        super.commitProperties();
 
         // Check whether we manage the elements, or are they managed by an ItemRenderer
         // TODO EGeorgie: we need to optimize this, iterating through all the elements is slow.

                itemAdded(_dataProvider.getItemAt(i), i);
            }
        }
        
        /* if (maskElements)
        {
            for (var k:Object in maskElements)
            {
                var maskElement:DisplayObject = k as DisplayObject;
                if (maskElement && (!maskElement.parent || maskElement.parent !== this))
                {
                    super.addChild(maskElement);
                    var maskComp:UIComponent = maskElement as UIComponent;
                    if (maskComp)
                    {
                        maskComp.validateNow();
                        maskComp.setActualSize(maskComp.getExplicitOrMeasuredWidth(), 
                                               maskComp.getExplicitOrMeasuredHeight());
                    }
                    
                    var maskTarget:IGraphicElement = maskElements[k] as IGraphicElement;
                    if (maskTarget)
                    {
                        maskTarget.applyMask();
                    }
                }
            }
        } */
    }
    
    /**

    }
    
    /**
     *  @inheritDoc
     */
    override public function addChild(child:DisplayObject):DisplayObject
