VAO's on ATI 6xxxx cards with multiple contexts

What is the proper way to handle vao’s on an ATI card where multiple contexts are being used?

The code works just fine on nvidia cards and on ipad.

I’ve tried generating and binding vao’s in many different places (one for each object being drawn, just 1 vao at the start of the app when the main context I care about is bound, and even the foolish move of gen/binding one just before using glVertexAttribPointer).

The thing that is causing all the fustration is that glVertexAttribPointer is causing an error on every use, GL_INVALID_OPERATION, the code is catching this and is throwing an expcetion. The only method that made this go away is the last one that I have listed.

I would greatly apperciate help on this matter. If there is anything I am unclear about please just ask.

Thank you