diff --git a/src/OpenGl/OpenGl_GraphicDriver_1.cxx b/src/OpenGl/OpenGl_GraphicDriver_1.cxx index 9189043108..fb963ab952 100755 --- a/src/OpenGl/OpenGl_GraphicDriver_1.cxx +++ b/src/OpenGl/OpenGl_GraphicDriver_1.cxx @@ -69,7 +69,10 @@ Standard_Boolean OpenGl_GraphicDriver::Begin (const Aspect_Display ADisplay) void OpenGl_GraphicDriver::End () { - openglDisplay.Nullify(); + // This is unsafe to realease global object here + // because noone guaranteed that only one instance of OpenGl_GraphicDriver is used! + // So we disable this destructor here until openglDisplay not moved to OpenGl_GraphicDriver class definition. + ///openglDisplay.Nullify(); } //======================================================================= diff --git a/src/OpenGl/OpenGl_telem_view.cxx b/src/OpenGl/OpenGl_telem_view.cxx index e5075f5589..c751245f82 100644 --- a/src/OpenGl/OpenGl_telem_view.cxx +++ b/src/OpenGl/OpenGl_telem_view.cxx @@ -85,7 +85,7 @@ EvalViewMappingMatrix( tel_view_mapping mapping /* View Mapping */, } /* prp between front and back planes */ - if (!openglDisplay.IsNull() || !openglDisplay->Walkthrough()) + if (openglDisplay.IsNull() || !openglDisplay->Walkthrough()) { if( mapping->prp[2] < mapping->fpd && mapping->prp[2] > mapping->bpd )