diff --git a/src/OpenGl/OpenGl_FrameBuffer.hxx b/src/OpenGl/OpenGl_FrameBuffer.hxx
index a384c63996..4daa5ad3f1 100644
--- a/src/OpenGl/OpenGl_FrameBuffer.hxx
+++ b/src/OpenGl/OpenGl_FrameBuffer.hxx
@@ -136,7 +136,7 @@ private:
 
   Standard_Boolean IsValidDepthBuffer() const
   {
-    return myGlTextureId != NO_RENDERBUFFER;
+    return myGlDepthRBId != NO_RENDERBUFFER;
   }
 
 private:
diff --git a/src/OpenGl/OpenGl_Workspace_2.cxx b/src/OpenGl/OpenGl_Workspace_2.cxx
index cf34c95d6d..335947de45 100644
--- a/src/OpenGl/OpenGl_Workspace_2.cxx
+++ b/src/OpenGl/OpenGl_Workspace_2.cxx
@@ -731,9 +731,14 @@ Standard_Boolean OpenGl_Workspace::Print
   glViewport (aViewPortBack[0], aViewPortBack[1], 
               aViewPortBack[2], aViewPortBack[3]);
   if (aPrevBuffer)
+  {
     aPrevBuffer->ChangeViewport (aPrevBufferX, aPrevBufferY);
+  }
   else
+  {
+    aFrameBuffer->Release (GetGlContext ());
     delete aFrameBuffer;
+  }
 
   // delete resources
 #ifndef HAVE_FREEIMAGE