The main problem was using gl_FrontMaterial.ambient with a color mode
of AMBIENT_AND_DIFFUSE i.e., the fixed function path would take both the
ambient colors from the vertex color value. Also, some vertex shaders
were not writing gl_FrontColor even though the fragment shader was
accessing gl_Color.
Author: Tim Moore <timoore@redhat.com>