Index: /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_glsl.c
===================================================================
--- /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_glsl.c	(revision 48246)
+++ /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_glsl.c	(revision 48247)
@@ -293,11 +293,5 @@
     }
 
-    /* the id may not necesserily be hwid after save state restoration */
-    while ((pShader = crStateGetShaderObj(stateId)) != NULL)
-    {
-        GLuint newStateId = stateId + 7;
-        crDebug("Shader object %d already exists, generating a new one, %d", stateId, newStateId);
-        stateId = newStateId;
-    }
+    Assert((pShader = crStateGetShaderObj(stateId)) == NULL);
 #endif
 
Index: /trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_glsl.c
===================================================================
--- /trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_glsl.c	(revision 48246)
+++ /trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_glsl.c	(revision 48247)
@@ -150,3 +150,18 @@
 }
 
+void SERVER_DISPATCH_APIENTRY crServerDispatchGetProgramiv( GLuint program, GLenum pname, GLint * params )
+{
+    GLint local_params[1];
+    (void) params;
+    cr_server.head_spu->dispatch_table.GetProgramiv(crStateGetProgramHWID(program), pname, local_params);
+    crServerReturnValue( &(local_params[0]), 1*sizeof(GLint) );
+}
+
+void SERVER_DISPATCH_APIENTRY crServerDispatchGetShaderiv( GLuint shader, GLenum pname, GLint * params )
+{
+    GLint local_params[1];
+    (void) params;
+    cr_server.head_spu->dispatch_table.GetShaderiv( crStateGetShaderHWID(shader), pname, local_params );
+    crServerReturnValue( &(local_params[0]), 1*sizeof(GLint) );
+}
 #endif /* #ifdef CR_OPENGL_VERSION_2_0 */
Index: /trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_special
===================================================================
--- /trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_special	(revision 48246)
+++ /trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_special	(revision 48247)
@@ -252,2 +252,4 @@
 VBoxTexPresent
 GetError
+GetProgramiv
+GetShaderiv
