diff --git a/src/OpenGl/OpenGl_Workspace.cxx b/src/OpenGl/OpenGl_Workspace.cxx
index 80e6ff1366..d9f8cca982 100644
--- a/src/OpenGl/OpenGl_Workspace.cxx
+++ b/src/OpenGl/OpenGl_Workspace.cxx
@@ -674,7 +674,12 @@ void OpenGl_Workspace::Redraw (const Graphic3d_CView& theCView,
   if (myResultFBO->GetVPSizeX() != aSizeX
    || myResultFBO->GetVPSizeY() != aSizeY)
   {
-    myResultFBO->Init (aGlCtx, aSizeX, aSizeY);
+    // prepare FBOs containing main scene
+    // for further blitting and rendering immediate presentations on top
+    if (aGlCtx->core20fwd != NULL)
+    {
+      myResultFBO->Init (aGlCtx, aSizeX, aSizeY);
+    }
   }
   if (myResultFBO->IsValid())
   {