     }
     
     /**
+     *  Removes the actual or pending item at the specified index and returns it.
+     *  All items whose index is greater than the specified index are shifted 
+     *  to the left.
+     * 
+     *  <p>If there isn't an actual or pending item at the specified index, for
+     *  example because a call to getItemAt(index) hasn't caused the data to be 
+     *  paged in, then the underlying <code>list</code> may throw an IPE.  The 
+     *  implementation ignores the IPE and returns null.</p>
+     *
+     *  @param index The list index from which to retrieve the item.
+     *  @throws RangeError if <code>index &lt; 0</code> or <code>index >= length</code>.
+     *  @return The item that was removed or null.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function removeItemAt(index:int):Object
+    {
+        if (!list)
+            return null;
+        
+        var item:Object = deletePendingResponder(index);
+        try
+        {
+            return list.removeItemAt(index);
+        }
+        catch (ipe:ItemPendingError)
+        {
+            // If list[index] doesn't exist yet, an IPE will be thrown.  There's nothing 
+            // we can do about that, so ignore it.
+        }
+        return item; 
+    }
+    
+    /**
      *  @inheritDoc
      *  
      *  @langversion 3.0

     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function removeItemAt(index:int):Object
    {
        return (list) ? list.removeItemAt(index) : null;
    }
    
    /**
     *  @inheritDoc
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function setItemAt(item:Object, index:int):Object
    {
        return (list) ? list.setItemAt(item, index) : null;
    }
    
    /**
     *  @inheritDoc
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9

     */
    public function toArray():Array
    {
        if (!list)
            return [];
        
        const a:Array = new Array(list.length);
        for(var i:int = 0; i < a.length; i++)
            a[i] = getItemAt(i);
        return a;
    }
    
 
