diff -r 21df917c2719 -r e58cd202c4e9 view.c --- a/view.c Tue Sep 05 17:10:48 2006 +0200 +++ b/view.c Tue Sep 05 18:04:22 2006 +0200 @@ -317,8 +317,14 @@ if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized) return; - if((c = sel) == getnext(clients)) - for(c = getnext(c->next); c && c->isfloat; c = getnext(c->next)); + /* this is somewhat tricky, it asserts to only zoom tiled clients */ + for(c = clients; c && c->isfloat; c = getnext(c->next)); + if(c) { + if(c == sel) + for(c = getnext(c->next); c && c->isfloat; c = getnext(c->next)); + else + c = sel; + } if(!c) return; detach(c);