diff --git a/dix/dispatch.c b/dix/dispatch.c index 3c6a591db..0ce10c2f7 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -3904,6 +3904,10 @@ RemoveGPUScreen(ScreenPtr pScreen) } screenInfo.numGPUScreens--; + /* this gets freed later in the resource list, but without + * the screen existing it causes crashes - so remove it here */ + if (pScreen->defColormap) + FreeResource(pScreen->defColormap, RT_COLORMAP); free(pScreen); }