Index: src/video/cocoa/cocoa_v.mm =================================================================== --- src/video/cocoa/cocoa_v.mm (revision 26620) +++ src/video/cocoa/cocoa_v.mm (working copy) @@ -310,13 +310,18 @@ OTTD_Point modes[32]; uint count = _cocoa_subdriver->ListModes(modes, lengthof(modes)); - - for (uint i = 0; i < count; i++) { - _resolutions[i].width = modes[i].x; - _resolutions[i].height = modes[i].y; - } - - _num_resolutions = count; + + if (count == 0 && _num_resolutions > 0) { + /* This call sometimes returns zero modes. In that case, don't update -- + * don't empty -- the resolution list we already have. */ + } else { + for (uint i = 0; i < count; i++) { + _resolutions[i].width = modes[i].x; + _resolutions[i].height = modes[i].y; + } + + _num_resolutions = count; + } } /**