Thanks Guys.
Yes, I can see now why it's happening, and also why it happens on this model and not others. Most of my models are components only.
But if I add the entities to my own array, and then erase them all, won't I run into a similar problem? If I erase an edge before I get to the face, I'll still try to erase the face, but it will be gone from the model.
The reason I'm using the selection is that it's easy to add all the entities to it. There's a sel.add that doesn't care what kind of thing I'm adding. If I make my own entities array, I have to know what each thing is and call the right add, as there's no generic add. CB.