It’s either a bug in your code or a bug in the driver. It is probably unlikely that this is a bug in the driver.
The tokens to position lights and glEnable & glDisable lights are the same identifying tokens, it would be difficult to confuse these. GL_LIGHT0, GL_LIGHT1 and GL_LIGHT2 in your case.
Make sure that your glEnable glDisable and glLight* calls all use consistent tokens, specifically that glDisable disables with the token GL_LIGHT0.