uint8_t *buffer1 = (uint8_t *) CGBitmapContextGetData(context1);
         screen->frameBuffer = (char *) buffer0;
 
         uint8_t *buffer1 = (uint8_t *) CGBitmapContextGetData(context1);
         screen->frameBuffer = (char *) buffer0;
 
-        UIImageRef *image = UIGetScreenImage();
-        CGImageRef ref = [image CGImage];
-        CGContextDrawImage(context0, rect, ref);
+        CGImageRef image = UIGetScreenImage();
+        CGContextDrawImage(context0, rect, image);
+        CFRelease(image);
 
         if (memcmp(buffer0, buffer1, Size8) != 0)
             rfbMarkRectAsModified(screen, 0, 0, Width, Height);
 
         if (memcmp(buffer0, buffer1, Size8) != 0)
             rfbMarkRectAsModified(screen, 0, 0, Width, Height);