diff --git a/dix/dixutils.c b/dix/dixutils.c index 470bb5d..e3c9c22 100644 --- a/dix/dixutils.c +++ b/dix/dixutils.c @@ -737,6 +737,8 @@ _CallCallbacks( CallbackListPtr cbl = *pcbl; CallbackPtr cbr, pcbr; + if (cbl->inCallback) return; + ++(cbl->inCallback); for (cbr = cbl->list; cbr != NULL; cbr = cbr->next) { @@ -744,8 +746,6 @@ _CallCallbacks( } --(cbl->inCallback); - if (cbl->inCallback) return; - /* Was the entire list marked for deletion? */ if (cbl->deleted)