VerifyError: Error #1025: An invalid register 1 was accessed

If you need to parse some XML with namespaces in ActionScript 3 you may find this error quite soon: VerifyError: Error #1025: An invalid register 1 was accessed

It all comes because of this line:


default xml namespace = myXML.namespace();

It is needed in order to access the values in the namespaced value so removing it is not an option. The problem appears when you call any other function in your object... and you get that weird error.

I haven't managed to find out why. It kind of seems that changing the namespace (as the very example from Flash's reference on how to read an RSS feed suggests) also alters the namespace of later function calls, and so the interpreter can't find the functions.

I found the simplest solution was to reset the namespace back to nothing when I was done with accessing the XML:

default xml namespace = new Namespace('');

There should be an explanation for this but I haven't yet found it. Meanwhile this can save your life :-)