diff --git a/video/cocoa_v.m b/video/cocoa_v.m
index 09049e9f68..774cab40e6 100644
--- a/video/cocoa_v.m
+++ b/video/cocoa_v.m
@@ -1455,51 +1455,44 @@ static void QZ_WaitForVerticalBlank(void)
 	CSleep((uint32)(adjustment * 1000));
 }
 
+
 static void QZ_DrawScreen(void)
 {
-	const uint8* src;
-	uint8* dst;
-	uint height;
-	uint width;
-	uint pitch;
-	uint y;
-	uint num_dirty_rects;
-	uint length_drawn;
-	uint left;
+	const uint8* src = _cocoa_video_data.pixels;
+	uint8* dst       = (uint8*)_cocoa_video_data.realpixels;
+	uint pitch       = _cocoa_video_data.pitch;
+	uint width       = _cocoa_video_data.width;
+	uint num_dirty   = _cocoa_video_data.num_dirty_rects;
 	uint i;
 
-	src = _cocoa_video_data.pixels;
-	dst = (uint8*)_cocoa_video_data.realpixels;
-	width  = _cocoa_video_data.width;
-	pitch  = _cocoa_video_data.pitch;
-	num_dirty_rects = _cocoa_video_data.num_dirty_rects;
-
 	/* Check if we need to do anything */
-	if (num_dirty_rects == 0 ) return;
+	if (num_dirty == 0) return;
 
-	if (num_dirty_rects >= MAX_DIRTY_RECTS) {
-		num_dirty_rects = 1;
-		_cocoa_video_data.dirty_rects[0].left = 0;
-		_cocoa_video_data.dirty_rects[0].top = 0;
-		_cocoa_video_data.dirty_rects[0].right = _cocoa_video_data.width;
+	if (num_dirty >= MAX_DIRTY_RECTS) {
+		num_dirty = 1;
+		_cocoa_video_data.dirty_rects[0].left   = 0;
+		_cocoa_video_data.dirty_rects[0].top    = 0;
+		_cocoa_video_data.dirty_rects[0].right  = _cocoa_video_data.width;
 		_cocoa_video_data.dirty_rects[0].bottom = _cocoa_video_data.height;
 	}
 
 	QZ_WaitForVerticalBlank();
 	/* Build the region of dirty rectangles */
-	for (i = 0; i < num_dirty_rects; i++) {
+	for (i = 0; i < num_dirty; i++) {
+		uint y      = _cocoa_video_data.dirty_rects[i].top;
+		uint left   = _cocoa_video_data.dirty_rects[i].left;
+		uint length = _cocoa_video_data.dirty_rects[i].right - left;
+		uint bottom = _cocoa_video_data.dirty_rects[i].bottom;
 
-		y = _cocoa_video_data.dirty_rects[i].top;
-		left = _cocoa_video_data.dirty_rects[i].left;
-		length_drawn = _cocoa_video_data.dirty_rects[i].right - left;
-		height = _cocoa_video_data.dirty_rects[i].bottom;
-		for (; y < height; y++) memcpy(dst + y * pitch + left, src + y * width +left, length_drawn);
+		for (; y < bottom; y++) {
+			memcpy(dst + y * pitch + left, src + y * width + left, length);
+		}
 	}
 
 	_cocoa_video_data.num_dirty_rects = 0;
-
 }
 
+
 static int QZ_ListFullscreenModes(OTTDPoint* mode_list, int max_modes)
 {
 	CFIndex num_modes;