diff --git a/dlls/ddraw/d3ddevice/mesa.c b/dlls/ddraw/d3ddevice/mesa.c index d10e8b08459..d9890e4071a 100644 --- a/dlls/ddraw/d3ddevice/mesa.c +++ b/dlls/ddraw/d3ddevice/mesa.c @@ -4212,6 +4212,12 @@ d3ddevice_init_at_startup(void *gl_handle) int major, minor, patch, num_parsed; TRACE("Initializing GL...\n"); + + if (!drawable) + { + WARN("x11drv not loaded - D3D support disabled!\n"); + return FALSE; + } /* Get a default rendering context to have the 'caps' function query some info from GL */ device_context = GetDC(0); diff --git a/dlls/ddraw/ddraw/hal.c b/dlls/ddraw/ddraw/hal.c index 049daa15ce6..447c0b608f3 100644 --- a/dlls/ddraw/ddraw/hal.c +++ b/dlls/ddraw/ddraw/hal.c @@ -213,6 +213,9 @@ static BOOL initialize(void) static void cleanup(void) { DDHAL_DESTROYDRIVERDATA data; + + if (!dd_cbs.HALDD.DestroyDriver) return; + data.lpDD = NULL; data.ddRVal = 0; data.DestroyDriver = dd_cbs.HALDD.DestroyDriver;