Index: /trunk/src/VBox/Devices/VMMDev/VMMDev.cpp
===================================================================
--- /trunk/src/VBox/Devices/VMMDev/VMMDev.cpp	(revision 30032)
+++ /trunk/src/VBox/Devices/VMMDev/VMMDev.cpp	(revision 30033)
@@ -471,20 +471,20 @@
             if (pRequestHeader->size < sizeof(VMMDevReportGuestInfo))
             {
-                AssertMsgFailed(("VMMDev guest information structure has invalid size!\n"));
-                pRequestHeader->rc = VERR_INVALID_PARAMETER;
-            }
-            else
-            {
-                VMMDevReportGuestInfo *guestInfo = (VMMDevReportGuestInfo*)pRequestHeader;
-
-                if (memcmp (&pThis->guestInfo, &guestInfo->guestInfo, sizeof (guestInfo->guestInfo)) != 0)
+                AssertMsgFailed(("VMMDev guest information structure has an invalid size!\n"));
+                pRequestHeader->rc = VERR_INVALID_PARAMETER;
+            }
+            else
+            {
+                VBoxGuestInfo *guestInfo = &((VMMDevReportGuestInfo*)pRequestHeader)->guestInfo;
+
+                if (memcmp (&pThis->guestInfo, guestInfo, sizeof(*guestInfo)) != 0)
                 {
                     /* make a copy of supplied information */
-                    pThis->guestInfo = guestInfo->guestInfo;
+                    pThis->guestInfo = *guestInfo;
 
                     /* Check additions version */
                     pThis->fu32AdditionsOk = VBOX_GUEST_ADDITIONS_VERSION_OK(pThis->guestInfo.additionsVersion);
 
-                    LogRel(("Guest Additions information report: additionsVersion = 0x%08X  osType = 0x%08X\n",
+                    LogRel(("Guest Additions information report: Interface = 0x%08X osType = 0x%08X\n",
                             pThis->guestInfo.additionsVersion,
                             pThis->guestInfo.osType));
@@ -500,4 +500,22 @@
                     pRequestHeader->rc = VERR_VERSION_MISMATCH;
                 }
+            }
+            break;
+        }
+
+        case VMMDevReq_ReportGuestInfo2:
+        {
+            if (pRequestHeader->size < sizeof(VMMDevReportGuestInfo2))
+            {
+                AssertMsgFailed(("VMMDev guest information 2 structure has an invalid size!\n"));
+                pRequestHeader->rc = VERR_INVALID_PARAMETER;
+            }
+            else
+            {
+                VBoxGuestInfo2 *guestInfo2 = &((VMMDevReportGuestInfo2*)pRequestHeader)->guestInfo;
+                LogRel(("Guest Additions information report: Version %d.%d.%d r%d %.*s\n",
+                        guestInfo2->additionsMajor, guestInfo2->additionsMinor, guestInfo2->additionsBuild,
+                        guestInfo2->additionsRevision, guestInfo2->szName, sizeof(guestInfo2->szName)));
+                pRequestHeader->rc = VINF_SUCCESS;
             }
             break;
