diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 3e4e38a..e6f9510 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -986,9 +986,11 @@
     glEnable(GL_FRAGMENT_PROGRAM_ARB);
 }
 
-static void shader_arb_cleanup(BOOL usePS, BOOL useVS) {
-    if (useVS) glDisable(GL_VERTEX_PROGRAM_ARB);
-    if (usePS) glDisable(GL_FRAGMENT_PROGRAM_ARB);
+static void shader_arb_cleanup(IWineD3DDevice *iface) {
+    IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
+    WineD3D_GL_Info *gl_info = &((IWineD3DImpl *)(This->wineD3D))->gl_info;
+    if (GL_SUPPORT(ARB_VERTEX_PROGRAM)) glDisable(GL_VERTEX_PROGRAM_ARB);
+    if (GL_SUPPORT(ARB_FRAGMENT_PROGRAM)) glDisable(GL_FRAGMENT_PROGRAM_ARB);
 }
 
 const shader_backend_t arb_program_shader_backend = {
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index 6949be1..8428b47 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -980,7 +980,7 @@
 static void shader_none_select(IWineD3DDevice *iface, BOOL usePS, BOOL useVS) {}
 static void shader_none_select_depth_blt(IWineD3DDevice *iface) {}
 static void shader_none_load_constants(IWineD3DDevice *iface, char usePS, char useVS) {}
-static void shader_none_cleanup(BOOL usePS, BOOL useVS) {}
+static void shader_none_cleanup(IWineD3DDevice *iface) {}
 
 const shader_backend_t none_shader_backend = {
     &shader_none_select,
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 5fd6c5a..30d0e52 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -2161,8 +2161,10 @@
     GL_EXTCALL(glUniform1iARB(loc, 0));
 }
 
-static void shader_glsl_cleanup(BOOL usePS, BOOL useVS) {
-    /* Nothing to do */
+static void shader_glsl_cleanup(IWineD3DDevice *iface) {
+    IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
+    WineD3D_GL_Info *gl_info = &((IWineD3DImpl *)(This->wineD3D))->gl_info;
+    GL_EXTCALL(glUseProgramObjectARB(0));
 }
 
 const shader_backend_t glsl_shader_backend = {
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index c1c36b0..0008834 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -177,7 +177,7 @@
     void (*shader_select)(IWineD3DDevice *iface, BOOL usePS, BOOL useVS);
     void (*shader_select_depth_blt)(IWineD3DDevice *iface);
     void (*shader_load_constants)(IWineD3DDevice *iface, char usePS, char useVS);
-    void (*shader_cleanup)(BOOL usePS, BOOL useVS);
+    void (*shader_cleanup)(IWineD3DDevice *iface);
 } shader_backend_t;
 
 extern const shader_backend_t glsl_shader_backend;
