Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 62284)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 62285)
@@ -2721,5 +2721,19 @@
         uMaxHeight  = RT_MAX(uMaxHeight, height);
         QImage shot = QImage(width, height, QImage::Format_RGB32);
-        display().TakeScreenShot(i, shot.bits(), shot.width(), shot.height(), KBitmapFormat_BGR0);
+        /* For separate process: */
+        if (vboxGlobal().isSeparateProcess())
+        {
+            /* Take screen-data to array first: */
+            const QVector<BYTE> screenData = display().TakeScreenShotToArray(i, shot.width(), shot.height(), KBitmapFormat_BGR0);
+            /* And copy that data to screen-shot if it is Ok: */
+            if (display().isOk() && !screenData.isEmpty())
+                memcpy(shot.bits(), screenData.data(), shot.width() * shot.height() * 4);
+        }
+        /* For the same process: */
+        else
+        {
+            /* Take the screen-shot directly: */
+            display().TakeScreenShot(i, shot.bits(), shot.width(), shot.height(), KBitmapFormat_BGR0);
+        }
         images << shot;
     }
