diff -r 6f9cf0cfe278 -r 60d5a92ce85c event.c --- a/event.c Sat Jul 28 12:58:56 2007 +0200 +++ b/event.c Sat Jul 28 17:18:45 2007 +0200 @@ -336,8 +336,10 @@ Client *c; XUnmapEvent *ev = &e->xunmap; - if((c = getclient(ev->window))) - unmanage(c); + if((c = getclient(ev->window)) && (ev->event == root)) { + if(ev->send_event || c->unmapped-- == 0) + unmanage(c); + } } /* extern */