Somewhat predictably this was fixed by swapping the order of the last two lines: [self.previousWindow orderOut:self]; [newWindow makeKeyAndOrderFront:self]; I initially had concerns that doing things in this order in an application where applicationShouldTerminateAfterLastWindowClosed returns YES might cause the application to close prematurely but this does not seem to be the...