         return 1;
     }
     
-    public function getItemAt(index:int):*
-    {
-        if (_content === undefined)
+    /**
+     *  Returns the item that exists at the specified index.
+     *
+     *  @param index The index of the item to retrieve.
+     *
+     *  @return The item at the specified index.
+     * 
+     *  @throws RangeError Throws if the index position does not exist in the child list.
+     */ 
+    public function getItemAt(index:int):Object
+    {
+        // check for RangeError:
+        checkForRangeError(index);
+        
+        if (_content === null)
             return null;
         
         if (_contentType == CONTENT_TYPE_ARRAY)

    //  is the item itself. For data items, the layout item is the item renderer
    //  instance that is associated with the item.
    //--------------------------------------------------------------------------
     /**
     *  The number of layout items in this Group. Typically this is the same
     *  as the number of items in the Group.
     */
    override public function get numLayoutItems():int
    {

        invalidateDisplayList();
    }
    
    /**
     *  @private
     *  
     *  Returns true if the Group's display object can be shared with graphic elements
     *  inside the group
     */
    private function get canShareDisplayObject():Boolean
    {
    	return blendMode == "normal" && (layeringMode == ITEM_ORDERED_LAYERING);
    }
    
    /**
     *  @private
     *  
     *  Called to assign display objects to graphic elements
     */
    private function assignDisplayObjects():void
    {
        var topLayerItems:Vector.<IVisualItem>;
        var bottomLayerItems:Vector.<IVisualItem>;        
