A simple solution is to do: children = new ArrayList(rootElement.getChildren()); This creates a new, non-live ArrayList. (Jason, this is an example of where the new FAQ entry doesn't answer this particular aspect of the live-list issue.) Alex