         }
         
         var length:int = addList.length;
+
+        for (var i:int=0; i < length; i++)
+        {
+            var insertIndex:int = i + index;
 			
-		// incremental index may be out of bounds because of filtering,
-		// so add this item to the end.
-		if (index > maxLength)
-			index = maxLength;
-
-        for (var i:int=0; i < length; i++)
-        {
-            var insertIndex:int = i + index;
+			// incremental index may be out of bounds because of filtering,
+			// so add this item to the end.
+			if (insertIndex > this.length)
+				insertIndex = this.length;
 			
             this.addItemAt(addList.getItemAt(i), insertIndex);
         }

			throw new CollectionViewError(message);
		}

        if (localIndex && addedItems.length > 1)
        {
            addLocation = -1;
        }

     *  @productversion Flex 3
     */
    public function addAllAt(addList:IList, index:int):void
    {	
        if (index < 0 || index > this.length)
        {
            var message:String = resourceManager.getString(
                "collections", "outOfBounds", [ index ]);
