Bribe: $50 reward if you can solve this

I need to solve this quite urgently, so if anyone can offer a solution to prevent the following code from dying with “Invalid BitmapData” error, I will send you $50 via PayPal.

The solution needs to work on slow machines too.

var mc:MovieClip = new MovieClip();
mc.graphics.beginFill(0x00FF);
mc.graphics.drawCircle(20,20,20);
mc.graphics.endFill();
for(var i:uint = 1; i<=20000; i++){
	var bd:BitmapData = new BitmapData(mc.width, mc.height, true, 0x000000FF);
	//bd.fillRect(bd.rect, 0x00000000);
	bd.draw(mc);
	var bmp:Bitmap = new Bitmap(bd);
	this.addChild(bmp);
	bmp.x = Math.random() * stage.stageWidth;
	bmp.y = Math.random() * stage.stageHeight;
}

The code above draws 20,000 bitmaps and after a certain number have been drawn and added to the stage, it returns ‘Invalid BitmapData’ and dies.

If you don’t get the error, try increasing the number of iterations in the loop. If you still don’t get the error, please let me know!

Many thanks in advance.