diff -uNr mesa.orig/main/mtypes.h mesa/main/mtypes.h
--- mesa.orig/main/mtypes.h	Sat Apr 30 14:21:31 2005
+++ mesa/main/mtypes.h	Sat Apr 30 14:31:11 2005
@@ -2651,6 +2651,7 @@
 
    struct fragment_program _TexEnvProgram;     /**< Texture state as fragment program */
    struct vertex_program _TnlProgram;          /**< Fixed func TNL state as vertex program */
+   char foobar[5000]; /* ick :) */
 
    struct gl_occlusion_state Occlusion;  /**< GL_ARB_occlusion_query */
 
diff -uNr mesa.orig/tnl/t_vp_build.c mesa/tnl/t_vp_build.c
--- mesa.orig/tnl/t_vp_build.c	Sat Apr 30 14:27:34 2005
+++ mesa/tnl/t_vp_build.c	Sat Apr 30 14:27:55 2005
@@ -957,10 +957,11 @@
    for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++) {
       struct gl_texture_unit *texUnit = &ctx->Texture.Unit[i];
       GLuint texmat_enabled = ctx->Texture._TexMatEnabled & ENABLE_TEXMAT(i);
-      struct ureg out = register_output(p, VERT_RESULT_TEX0 + i);
+      struct ureg out;
 
       if (texUnit->TexGenEnabled || texmat_enabled) {
 	 struct ureg out_texgen = undef;
+	 out = register_output(p, VERT_RESULT_TEX0 + i);
 
 	 if (texUnit->TexGenEnabled) {
 	    GLuint copy_mask = 0;
@@ -1048,6 +1049,9 @@
 	 }
 
 	 release_temps(p);
+      }else if(ctx->Texture.Unit[i]._ReallyEnabled) {
+	 out = register_output(p, VERT_RESULT_TEX0 + i);
+	 emit_op1(p, VP_OPCODE_MOV, out, 0, register_input(p, VERT_ATTRIB_TEX0+i)); 
       }
    }
 }
@@ -1126,11 +1130,13 @@
     */
    if (ctx->Light.Enabled)
       build_lighting(&p);
+   else /* FIXME */
+      emit_op1(&p, VP_OPCODE_MOV, register_output(&p, VERT_RESULT_COL0), 0, register_input(&p, VERT_ATTRIB_COLOR0));
 
    if (ctx->Fog.Enabled)
       build_fog(&p);
 
-   if (ctx->Texture._TexGenEnabled || ctx->Texture._TexMatEnabled)
+   //if (ctx->Texture._TexGenEnabled || ctx->Texture._TexMatEnabled)
       build_texture_transform(&p);
 
    if (ctx->Point._Attenuated)
