=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/session.c,v retrieving revision 1.65 retrieving revision 1.66 diff -u -r1.65 -r1.66 --- src/usr.bin/tmux/session.c 2016/10/13 21:37:03 1.65 +++ src/usr.bin/tmux/session.c 2016/10/15 00:12:58 1.66 @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.65 2016/10/13 21:37:03 nicm Exp $ */ +/* $OpenBSD: session.c,v 1.66 2016/10/15 00:12:58 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -211,6 +211,7 @@ struct winlink *wl; log_debug("session %s destroyed", s->name); + s->curw = NULL; RB_REMOVE(sessions, &sessions, s); notify_session_closed(s); @@ -385,14 +386,17 @@ session_detach(struct session *s, struct winlink *wl) { if (s->curw == wl && - session_last(s) != 0 && session_previous(s, 0) != 0) + session_last(s) != 0 && + session_previous(s, 0) != 0) session_next(s, 0); wl->flags &= ~WINLINK_ALERTFLAGS; notify_window_unlinked(s, wl->window); winlink_stack_remove(&s->lastw, wl); winlink_remove(&s->windows, wl); + session_group_synchronize_from(s); + if (RB_EMPTY(&s->windows)) { session_destroy(s); return (1);