         const r:Array = new Array();
         var index:int = 0;
         for each (var item:* in a)
-            r[index++] = item;
+        {
+            if (item !== undefined)
+                r[index++] = item;
+        }
         return r;
     }
     

    private function deleteAllPendingResponders():void
    {
        for each (var responder:ListItemResponder in pendingResponders)
            responder.index = -1;
        pendingResponders.length = 0;
    }


        {
            var nRequests:int = 0;
            for each (var responder:ListItemResponder in pendingResponders)
            {
                if (responder)
                    nRequests += 1;
            }
            s += " length=" + length + ", " + nRequests + " pending requests";
        }
        else
