state.light bindings in ARB_vertex_program on ATI

Are there any known problems with using things such as:

PARAM lightAmbient = state.light[1].ambient;

in an ARB_vertex_program on an ATI Radeon 9000? I seem to be getting lightAmbient=(0, 0, 0, 0) and the same for diffuse etc. If anyone wants to see an example, my shadow volumes project (on my site) has the problem. On my GF3, toggling the vertex program for lighting makes very little difference, wheras on my 9000, the vertex program mode is obviously wrong.

I discovered what the cause of my problem with the cel-shading project was, btw. I was experiencing incorrect renderings and a sharp speed decrease.
To draw the outline, I was setting
glPolygonMode(GL_BACK, GL_LINE). This step did not use the vertex program. I was not resetting this to FILL before drawing the next part which did use the vertex program.