diff --git a/src/gallium/state_trackers/nine/nine_state.c b/src/gallium/state_trackers/nine/nine_state.c
index 9bad0da..1ed1690 100644
--- a/src/gallium/state_trackers/nine/nine_state.c
+++ b/src/gallium/state_trackers/nine/nine_state.c
@@ -358,10 +358,10 @@
 
     /* likely because we dislike FF */
     if (likely(context->programmable_vs)) {
-        context->cso.vs = NineVertexShader9_GetVariant(vs);
+        context->cso_shader.vs = NineVertexShader9_GetVariant(vs);
     } else {
         vs = device->ff.vs;
-        context->cso.vs = vs->ff_cso;
+        context->cso_shader.vs = vs->ff_cso;
     }
 
     if (context->rs[NINED3DRS_VSPOINTSIZE] != vs->point_size) {
@@ -392,10 +392,10 @@
         return 0;
 
     if (likely(ps)) {
-        context->cso.ps = NinePixelShader9_GetVariant(ps);
+        context->cso_shader.ps = NinePixelShader9_GetVariant(ps);
     } else {
         ps = device->ff.ps;
-        context->cso.ps = ps->ff_cso;
+        context->cso_shader.ps = ps->ff_cso;
     }
 
     if ((context->bound_samplers_mask_ps & ps->sampler_mask) != ps->sampler_mask)
@@ -871,7 +871,7 @@
 {
     struct nine_context *context = &device->context;
 
-    device->pipe->bind_vs_state(device->pipe, context->cso.vs);
+    device->pipe->bind_vs_state(device->pipe, context->cso_shader.vs);
 }
 
 
@@ -880,7 +880,7 @@
 {
     struct nine_context *context = &device->context;
 
-    device->pipe->bind_fs_state(device->pipe, context->cso.ps);
+    device->pipe->bind_fs_state(device->pipe, context->cso_shader.ps);
 }
 /* State Update */
 
diff --git a/src/gallium/state_trackers/nine/nine_state.h b/src/gallium/state_trackers/nine/nine_state.h
index 2cf607c..d618987 100644
--- a/src/gallium/state_trackers/nine/nine_state.h
+++ b/src/gallium/state_trackers/nine/nine_state.h
@@ -239,7 +239,7 @@
     struct {
         void *vs;
         void *ps;
-    } cso;
+    } cso_shader;
 
     uint8_t rt_mask;
 
diff --git a/src/gallium/state_trackers/nine/pixelshader9.c b/src/gallium/state_trackers/nine/pixelshader9.c
index 387ecc3..675b7b4 100644
--- a/src/gallium/state_trackers/nine/pixelshader9.c
+++ b/src/gallium/state_trackers/nine/pixelshader9.c
@@ -97,7 +97,7 @@
 
         do {
             if (var->cso) {
-                if (This->base.device->context.cso.ps == var->cso)
+                if (This->base.device->context.cso_shader.ps == var->cso)
                     pipe->bind_fs_state(pipe, NULL);
                 pipe->delete_fs_state(pipe, var->cso);
             }
@@ -105,7 +105,7 @@
         } while (var);
 
         if (This->ff_cso) {
-            if (This->ff_cso == This->base.device->context.cso.ps)
+            if (This->ff_cso == This->base.device->context.cso_shader.ps)
                 pipe->bind_fs_state(pipe, NULL);
             pipe->delete_fs_state(pipe, This->ff_cso);
         }
diff --git a/src/gallium/state_trackers/nine/vertexshader9.c b/src/gallium/state_trackers/nine/vertexshader9.c
index 28c40f4..b1ee7ac 100644
--- a/src/gallium/state_trackers/nine/vertexshader9.c
+++ b/src/gallium/state_trackers/nine/vertexshader9.c
@@ -116,7 +116,7 @@
 
         do {
             if (var->cso) {
-                if (This->base.device->context.cso.vs == var->cso)
+                if (This->base.device->context.cso_shader.vs == var->cso)
                     pipe->bind_vs_state(pipe, NULL);
                 pipe->delete_vs_state(pipe, var->cso);
             }
@@ -131,7 +131,7 @@
         }
 
         if (This->ff_cso) {
-            if (This->ff_cso == This->base.device->context.cso.vs)
+            if (This->ff_cso == This->base.device->context.cso_shader.vs)
                 pipe->bind_vs_state(pipe, NULL);
             pipe->delete_vs_state(pipe, This->ff_cso);
         }
