diff --git a/engines/sci/gui/gui_gfx.cpp b/engines/sci/gui/gui_gfx.cpp index d4fc0563080..056bbecdc8e 100644 --- a/engines/sci/gui/gui_gfx.cpp +++ b/engines/sci/gui/gui_gfx.cpp @@ -606,11 +606,15 @@ GuiMemoryHandle SciGuiGfx::SaveBits(const Common::Rect &rect, byte screenMask) { } void SciGuiGfx::RestoreBits(GuiMemoryHandle memoryHandle) { - byte *memoryPtr = kmem(_s->_segMan, memoryHandle);; + byte *memoryPtr = NULL; - if (memoryPtr) { - _screen->restoreBits(memoryPtr); - kfree(_s->_segMan, memoryHandle); + if (!memoryHandle.isNull()) { + memoryPtr = kmem(_s->_segMan, memoryHandle);; + + if (memoryPtr) { + _screen->restoreBits(memoryPtr); + kfree(_s->_segMan, memoryHandle); + } } }