fix state.light[n].spot.direction.w value (bug 3083)
diff --git a/src/mesa/shader/program.c b/src/mesa/shader/program.c
index 63d2808..faa4889 100644
--- a/src/mesa/shader/program.c
+++ b/src/mesa/shader/program.c
@@ -619,7 +619,8 @@
             value[3] = ctx->Light.Light[ln].SpotExponent;
             return;
          case STATE_SPOT_DIRECTION:
-            COPY_4V(value, ctx->Light.Light[ln].EyeDirection);
+            COPY_3V(value, ctx->Light.Light[ln].EyeDirection);
+            value[3] = ctx->Light.Light[ln]._CosCutoff;
             return;
          case STATE_HALF:
             {