Index: /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_bufferobject.c
===================================================================
--- /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_bufferobject.c	(revision 44082)
+++ /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_bufferobject.c	(revision 44083)
@@ -75,4 +75,19 @@
             return NULL;
     }
+}
+
+DECLEXPORT(GLboolean) STATE_APIENTRY crStateIsBufferARB( GLuint buffer )
+{
+    CRContext *g = GetCurrentContext();
+
+    FLUSH();
+
+    if (g->current.inBeginEnd) {
+        crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
+                                 "glIsBufferARB called in begin/end");
+        return GL_FALSE;
+    }
+
+    return buffer ? crHashtableIsKeyUsed(g->shared->buffersTable, buffer) : GL_FALSE;
 }
 
@@ -347,25 +362,4 @@
 }
 
-GLboolean STATE_APIENTRY
-crStateIsBufferARB(GLuint buffer)
-{
-    CRContext *g = GetCurrentContext();
-    CRBufferObjectState *b = &g->bufferobject;
-
-    FLUSH();
-
-    if (g->current.inBeginEnd) {
-        crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
-                                 "glIsBufferARB called in begin/end");
-        return GL_FALSE;
-    }
-
-    if (buffer && crHashtableSearch(g->shared->buffersTable, buffer))
-        return GL_TRUE;
-    else
-        return GL_FALSE;
-}
-
-
 void STATE_APIENTRY
 crStateBufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage)
Index: /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_framebuffer.c
===================================================================
--- /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_framebuffer.c	(revision 44082)
+++ /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_framebuffer.c	(revision 44083)
@@ -760,5 +760,14 @@
 {
     CRContext *g = GetCurrentContext();
-    return crHashtableIsKeyUsed(g->shared->fbTable, framebuffer);
+
+    FLUSH();
+
+    if (g->current.inBeginEnd) {
+        crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
+                                 "glIsFramebufferEXT called in begin/end");
+        return GL_FALSE;
+    }
+
+    return framebuffer ? crHashtableIsKeyUsed(g->shared->fbTable, framebuffer) : GL_FALSE;
 }
 
@@ -766,5 +775,15 @@
 {
     CRContext *g = GetCurrentContext();
-    return crHashtableIsKeyUsed(g->shared->rbTable, renderbuffer);
+
+
+    FLUSH();
+
+    if (g->current.inBeginEnd) {
+        crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
+                                 "glIsRenderbufferEXT called in begin/end");
+        return GL_FALSE;
+    }
+
+    return renderbuffer ? crHashtableIsKeyUsed(g->shared->rbTable, renderbuffer) : GL_FALSE;
 }
 
Index: /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_special
===================================================================
--- /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_special	(revision 44082)
+++ /trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_special	(revision 44083)
@@ -378,5 +378,4 @@
 GenFramebuffersEXT
 GenRenderbuffersEXT
-GenBuffersARB
 IsRenderbufferEXT
 IsFramebufferEXT
Index: /trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c
===================================================================
--- /trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c	(revision 44082)
+++ /trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c	(revision 44083)
@@ -72,6 +72,7 @@
 crServerDispatchIsBufferARB(GLuint buffer)
 {
-    GLboolean retval;
-    retval = cr_server.head_spu->dispatch_table.IsBufferARB(crStateGetBufferHWID(buffer));
+    /* since GenBuffersARB issued to host ogl only on bind + some other ops, the host drivers may not know about them
+     * so use state data*/
+    GLboolean retval = crStateIsBufferARB(buffer);
     crServerReturnValue( &retval, sizeof(retval) );
     return retval; /* WILL PROBABLY BE IGNORED */
