rem: if (scr->helper_pid) {
add: if (scr->helper_pid > 0) {
context: RestoreDesktop(WScreen *scr){    int i;    if (scr->helper_pid) {	kill(scr->helper_pid, SIGTERM);	scr->helper_pid = 0;    }    XGrabServer(dpy);    wDestroyInspectorPanels();    /* reparent windows back to the root window, keeping the stacking order */    for (i=0; i<MAX_WINDOW_LEVELS; i++) {        WCoreWindow *core, *next;        WWindow *wwin;                if (!scr->stacking_list[i])            continue;                core = scr->stacking_list[i];        /* go to the end of the list */        while (core->stacking->under)            core = core->stacking->under;                while (core) {            next = core->stacking->above;                        if (core->descriptor.parent_type==WCLASS_WINDOW) {                wwin = core->descriptor.parent;                wwin->flags.mapped=1;                wUnmanageWindow(wwin, !wwin->flags.internal_window, False);            }            core = next;        }    }    XUngrabServer(dpy);    XSetInputFocus(dpy, PointerRoot, RevertToParent, CurrentTime);    wColormapInstallForWindow(scr, NULL);    PropCleanUp(scr->root_win);    XSync(dpy, 0);}