state tracking in ARB_VERTEX_PROGRAM

I am using ARB vertex programs on a GeForce3MX to render lighted surfaces with some non-linear projection. It works fine when only one context is used but if I use multiple windows with different contexts and share the program, the state.matrix… and state.light… are not always updated with the current context values.
The only solution I found was to delete and reload the program every time I switch the context.
Does anybody have another way to make sure the state parameter tracking is in sync with the current context ?

Have you called wglShareLists for the other contexts?