> > C-x 1 > > C-x 3 > > windmove-right > > C-x 2 > > windmove-down > > C-x 0 > > > > For me it stops in the left window, not the right as I expect. > > Looks like a bug indeed. It behaves this way in the current trunk but > doesn't so in my Emacs. I'll have to look into this. OK the problem is with the following assignment in delete_window: /* Otherwise, try another window for SWINDOW. */ swindow = Fnext_window (swindow, Qlambda, Qnil); This will fail to pick a useful window when deleting the bottom-right window of a frame. I use /* Otherwise, try another window for SWINDOW. */ swindow = Fprevious_window (swindow, Qlambda, Qnil); which is better for me but fails miserably when deleting the top-left window of a frame. So maybe we need something like the attached patch. Could you try it? martin