I have a strange behaviour when using glPushAttrib(GL_CURRENT_BIT) with a vertex shader enabled (on linux with last nvidia driver installed). This is the sample code that generate a gl error.
// aVertexShader is a valid vertex shader that works.
// noProgram is 0.
glUseProgramObjectARB(aVertexShader); // this program exist and works fine
glPushAttrib(GL_CURRENT_BIT); // with GL_ENABLE_BIT all is ok
... some command
glUseProgramObjectARB(NoProgram);
glPopAttrib();
glUseProgramObjectARB(aVertexShader);
// here glGetError return an error 'Invalid value'
if someone has an idea