Index: /trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa_helper.m
===================================================================
--- /trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa_helper.m	(revision 29432)
+++ /trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa_helper.m	(revision 29433)
@@ -767,12 +767,21 @@
 - (void)createFBO
 {
-    GLuint fboid = m_FBOId;
+    GLint oldTexId;
+    GLint oldFBId;
     
     DEBUG_MSG(("createFBO %p\n", self));
     [self deleteFBO];
 
-if (0&&!fboid)
-    GL_SAVE_STATE;
-
+    //GL_SAVE_STATE;
+#if 0
+    CHECK_GL_ERROR();
+    glPushAttrib(GL_ACCUM_BUFFER_BIT);
+    glPopAttrib();
+    CHECK_GL_ERROR();
+#endif
+
+    glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE_ARB, &oldTexId);
+    glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &oldFBId);
+    
     /* If not previously setup generate IDs for FBO and its associated texture. */
     if (!m_FBOId)
@@ -803,5 +812,5 @@
     glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_FBOId);
 
-    glEnable(GL_TEXTURE_RECTANGLE_ARB);
+    /*glEnable(GL_TEXTURE_RECTANGLE_ARB);*/
     
     GLfloat imageAspectRatio = m_FBOTexSize.width / m_FBOTexSize.height;
@@ -851,7 +860,6 @@
         DEBUG_MSG(("Framebuffer Object creation or update failed!\n"));
 
-    glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0);
-    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
-    glDisable(GL_TEXTURE_RECTANGLE_ARB);
+    glBindTexture(GL_TEXTURE_RECTANGLE_ARB, oldTexId);
+    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, oldFBId ? oldFBId:0);
 
     /* Is there a dock tile preview enabled in the GUI? If so setup a
@@ -885,6 +893,6 @@
             DEBUG_MSG(("Framebuffer Thumb Object creation or update failed!\n"));
 
-        glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0);
-        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
+        glBindTexture(GL_TEXTURE_RECTANGLE_ARB, oldTexId);
+        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, oldFBId ? oldFBId:0);
 
         m_DockTileView = [[DockOverlayView alloc] init];
@@ -902,6 +910,5 @@
     m_paClipRects[3] = m_FBOTexSize.height;
     
-if (0&&!fboid)
-    GL_RESTORE_STATE;
+    //GL_RESTORE_STATE;
 }
 
@@ -931,6 +938,4 @@
         if (m_FBOTexId > 0)
         {
-            glEnable(GL_TEXTURE_RECTANGLE_ARB);
-            glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0);
             glDeleteTextures(1, &m_FBOTexId);
             m_FBOTexId = 0;
