diff -r dd0f52bf2bfa src/video/uikit/SDL_uikitvideo.m --- a/src/video/uikit/SDL_uikitvideo.m Tue Jul 05 22:05:56 2011 -0400 +++ b/src/video/uikit/SDL_uikitvideo.m Sun Aug 28 11:16:55 2011 +0200 @@ -245,12 +245,8 @@ const CGRect rect = [uiscreen bounds]; UIKit_AddDisplay(uiscreen, uiscreenmode, (int)rect.size.width, (int)rect.size.height); } else { - const NSArray *screens = [UIScreen screens]; - const NSUInteger screen_count = [screens count]; - NSUInteger i; - for (i = 0; i < screen_count; i++) { + for (UIScreen *uiscreen in [UIScreen screens]) { // the main screen is the first element in the array. - UIScreen *uiscreen = (UIScreen *) [screens objectAtIndex:i]; UIScreenMode *uiscreenmode = [uiscreen currentMode]; const CGSize size = [[uiscreen currentMode] size]; UIKit_AddDisplay(uiscreen, uiscreenmode, (int)size.width, (int)size.height); @@ -286,6 +282,9 @@ UIScreen *uiscreen = (UIScreen *) display->driverdata; [uiscreen release]; display->driverdata = NULL; + UIScreenMode *desktopmode = (UIScreenMode *) display->desktop_mode.driverdata; + [desktopmode release]; + display->desktop_mode.driverdata = NULL; for (j = 0; j < display->num_display_modes; j++) { SDL_DisplayMode *mode = &display->display_modes[j]; UIScreenMode *uimode = (UIScreenMode *) mode->driverdata;