diff --git a/src/gallium/frontends/glx/xlib/glx_api.c b/src/gallium/frontends/glx/xlib/glx_api.c index 86dd86ebd24..63163a8c523 100644 --- a/src/gallium/frontends/glx/xlib/glx_api.c +++ b/src/gallium/frontends/glx/xlib/glx_api.c @@ -1392,8 +1392,14 @@ glXQueryExtension( Display *dpy, int *errorBase, int *eventBase ) PUBLIC void glXDestroyContext( Display *dpy, GLXContext ctx ) { - if (ctx) { - GLXContext glxCtx = ctx; + GLXContext glxCtx = ctx; + + if (glxCtx == NULL || glxCtx->xid == None) + return; + + if (ctx->currentDpy) { + ctx->xid = None; + } else { (void) dpy; XMesaDestroyContext( glxCtx->xmesaContext ); XMesaGarbageCollect();