diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/Makefile.kmk vbox-trunk\src\VBox\Frontends/VirtualBox/Makefile.kmk
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/Makefile.kmk	2015-10-25 03:04:18.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/Makefile.kmk	2015-10-23 05:51:40.000000000 +0300
@@ -172,10 +172,23 @@
 	./src/globals \
 	./src/medium \
 	./src/objects \
-	./src/platform \
-	./src/platform/darwin \
-	./src/platform/win \
-	./src/platform/x11 \
+	./src/platform
+
+ifeq ($(KBUILD_TARGET),win)
+ VBOX_GUI_INC_DIRS += \
+	./src/platform/win
+else ifeq ($(KBUILD_TARGET),os2)
+ VBOX_GUI_INC_DIRS += \
+	./src/platform/os2
+else ifeq ($(KBUILD_TARGET),darwin)
+ VBOX_GUI_INC_DIRS += \
+	./src/platform/darwin
+else
+ VBOX_GUI_INC_DIRS += \
+	./src/platform/x11
+endif
+
+VBOX_GUI_INC_DIRS += \
 	./src/runtime \
 	./src/runtime/fullscreen \
 	./src/runtime/normal \
@@ -265,6 +278,29 @@
  VirtualBox_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB)
 endif
 
+# ifeq ($(BUILD_TARGET),os2)
+#  DLLS += VBoxHlp
+#  ifneq ($(strip $(VBOX_DLL_QT)),)
+#   INSTALLS += qt.dll
+#   qt.dll_INST = $(INST_BIN)
+#   qt.dll_SOURCES += \
+# 	$(VBOX_DLL_QT)=>$(not-dir $(VBOX_DLL_QT))
+#  endif
+# endif
+#
+#
+# VBoxHlp - helper DLL for OS/2.
+#
+# VBoxHlp_ASTOOL      = NASM
+# VBoxHlp_ASFLAGS     = -f obj
+# VBoxHlp_DEFS        = IN_RING3 IN_VBOXHLP
+# VBoxHlp_CXXFLAGS    = -fno-exceptions
+# VBoxHlp_LDFLAGS     = -nostdlib -los2
+# VBoxHlp_LDFLAGS    += -Zlinker option -Zlinker manyautodata
+# VBoxHlp_SOURCES     = \
+#	src/platform/os2/VBoxHlp.asm \
+#	src/platform/os2/VBoxHlp.cpp
+#
 
 # Headers containing definitions of classes that use the Q_OBJECT macro.
 VirtualBox_QT_MOCHDRS = \
@@ -794,6 +830,9 @@
 	src/platform/win/VBoxUtils-win.cpp \
 	src/platform/win/WinKeyboard.cpp
 
+VirtualBox_SOURCES.os2 = \
+	src/platform/os2/UIDesktopServices_os2.cpp
+
 VirtualBox_DEFS.darwin += VBOX_DARWIN_USE_NATIVE_CONTROLS
 VirtualBox_SOURCES.darwin += \
 	src/platform/darwin/CocoaEventHelper.mm \
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/globals/COMDefs.cpp vbox-trunk\src\VBox\Frontends/VirtualBox/src/globals/COMDefs.cpp
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/globals/COMDefs.cpp	2015-10-25 03:03:16.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/globals/COMDefs.cpp	2015-10-14 00:28:04.000000000 +0300
@@ -55,7 +55,7 @@
    internally in plevent.c. Because moc doesn't seems to respect
    #ifdefs, we still have to include the definition of the class.
    very silly. */
-# if !defined (Q_OS_MAC)  && !defined (Q_OS_OS2)
+# if !defined (Q_OS_MAC) // && !defined (Q_OS_OS2)
 XPCOMEventQSocketListener *COMBase::sSocketListener = 0;
 
 # endif
@@ -107,7 +107,7 @@
 
 #if defined (VBOX_WITH_XPCOM)
 
-# if !defined (RT_OS_DARWIN) && !defined (RT_OS_OS2)
+# if !defined (RT_OS_DARWIN) // && !defined (RT_OS_OS2)
 
     if (NS_SUCCEEDED (rc))
     {
@@ -166,7 +166,7 @@
             rc = eventQ->IsOnCurrentThread (&isOnMainThread);
             if (NS_SUCCEEDED (rc) && isOnMainThread)
             {
-# if !defined (RT_OS_DARWIN) && !defined (RT_OS_OS2)
+# if !defined (RT_OS_DARWIN) // && !defined (RT_OS_OS2)
                 if (sSocketListener)
                 {
                     delete sSocketListener;
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/globals/UIMessageCenter.cpp vbox-trunk\src\VBox\Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	2015-10-25 03:03:16.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	2015-10-21 01:41:48.000000000 +0300
@@ -54,6 +54,9 @@
 # ifdef Q_WS_WIN
 #  include <Htmlhelp.h>
 # endif /* Q_WS_WIN */
+# ifdef Q_WS_PM
+# include <UIDesktopServices.h>
+# endif /* Q_WS_PM  */
 
 /* COM includes: */
 # include "CConsole.h"
@@ -2687,6 +2690,8 @@
 # endif /* #ifdef VBOX_OSE */
 #elif defined (Q_WS_MAC)
     vboxGlobal().openURL("file://" + strLocation);
+#elif defined (Q_WS_PM)
+    UIDesktopServices::openObject(strLocation);
 #endif
 }
 
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/globals/VBoxGlobal.cpp vbox-trunk\src\VBox\Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	2015-10-25 03:03:14.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	2015-10-21 00:41:48.000000000 +0300
@@ -2429,6 +2429,9 @@
 #if defined (Q_WS_WIN32)
     const QString name = "VirtualBox";
     const QString suffix = "chm";
+#elif defined (Q_WS_PM)
+    const QString name = "VirtualBox";
+    const QString suffix = "pdf";
 #elif defined (Q_WS_MAC)
     const QString name = "UserManual";
     const QString suffix = "pdf";
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/platform/os2/UIDesktopServices_os2.cpp vbox-trunk\src\VBox\Frontends/VirtualBox/src/platform/os2/UIDesktopServices_os2.cpp
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/platform/os2/UIDesktopServices_os2.cpp	1970-01-01 03:00:00.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/platform/os2/UIDesktopServices_os2.cpp	2015-10-23 02:02:34.000000000 +0300
@@ -0,0 +1,91 @@
+/* $Id: UIDesktopServices_os2.cpp 3 2015-07-31 15:39:00Z dmik $ */
+/** @file
+ * VBox Qt GUI - Qt GUI - Utility Classes and Functions specific to OS/2...
+ */
+
+/*
+ * Copyright (C) 2010 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+#ifdef VBOX_WITH_PRECOMPILED_HEADERS
+# include <precomp.h>
+#else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+/* VBox includes */
+# include "UIDesktopServices.h"
+
+/* Qt includes */
+# include <QDir>
+# include <QCoreApplication>
+
+/* WPS includes */
+# define INCL_WINWORKPLACE
+# include <os2.h>
+
+# define OPEN_DEFAULT       0
+# define OPEN_DETAILS       102
+
+#endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+/* Create a VM shadow on the Desktop */
+bool UIDesktopServices::createMachineShortcut(const QString &strSrcFile, const QString &strDstPath, const QString &strName, const QString &strUuid)
+{
+    QString   strVBox    = QDir::toNativeSeparators(QCoreApplication::applicationFilePath());
+    QFileInfo fiVBox(strVBox);
+    QFileInfo fiDst(strDstPath);
+    QString   strVBoxDir = QDir::toNativeSeparators(fiVBox.absolutePath());
+    QString   strDst     = QDir::toNativeSeparators(strDstPath);
+    QString   strSetup   = QString("EXENAME=%1;STARTUPDIR=%2;PARAMETERS=--comment %3 "
+        "--startvm %4;PROGTYPE=WINDOWABLEVIO;MINIMIZED=YES;ICONFILE=%5\\%6;")
+        .arg(strVBox)
+	.arg(strVBoxDir)
+	.arg(strName)
+	.arg(strUuid)
+	.arg(strVBoxDir)
+	.arg("VirtualBox.ico");
+
+    if (WinCreateObject((PCSZ)"WPProgram",
+            (PCSZ)strName.toLocal8Bit().constData(),
+            (PCSZ)strSetup.toLocal8Bit().constData(),
+            (PCSZ)strDst.toLocal8Bit().constData(),
+            CO_UPDATEIFEXISTS))
+        return true;
+
+    return false;
+}
+
+/* Open a WPS folder with a given object */
+bool UIDesktopServices::openInFileManager(const QString &strFile)
+{
+    QFileInfo fi(strFile);
+    QString str  = QDir::toNativeSeparators(fi.absolutePath());
+
+    HOBJECT hObj = WinQueryObject((PCSZ)str.toLocal8Bit().constData());
+
+    if ((hObj != NULL) &&
+        WinOpenObject(hObj, OPEN_DETAILS, FALSE))
+        return true;
+
+    return false;
+}
+
+/* Open a WPS object */
+bool UIDesktopServices::openObject(const QString &strFile)
+{
+    QFileInfo fi(strFile);
+    QString str  = QDir::toNativeSeparators(fi.absoluteFilePath());
+    HOBJECT hObj;
+
+    if ((hObj = WinQueryObject((PCSZ)str.toLocal8Bit().constData())) != NULL)
+        return WinOpenObject(hObj, OPEN_DEFAULT, TRUE);
+
+    return false;
+}
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/platform/UIDesktopServices.h vbox-trunk\src\VBox\Frontends/VirtualBox/src/platform/UIDesktopServices.h
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/platform/UIDesktopServices.h	2015-10-25 03:03:04.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/platform/UIDesktopServices.h	2015-10-24 21:36:18.000000000 +0300
@@ -26,6 +26,9 @@
 public:
     static bool createMachineShortcut(const QString &strSrcFile, const QString &strDstPath, const QString &strName, const QString &strUuid);
     static bool openInFileManager(const QString &strFile);
+#ifdef RT_OS_OS2 // Q_WS_PM
+    static bool openObject(const QString &strFile);
+#endif
 };
 
 #endif /* !___UIDesktopServices_h___ */
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp vbox-trunk\src\VBox\Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp	2015-10-25 03:03:02.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp	2015-10-24 07:24:24.000000000 +0300
@@ -1019,7 +1019,7 @@
     QColor color1 = pal.color(QPalette::Window).lighter(110);
     color1.setAlpha(0);
     QColor color2 = pal.color(QPalette::Window).darker(200);
-#if defined(Q_WS_WIN) || defined(Q_WS_X11)
+#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_PM)
     QColor color3 = pal.color(QPalette::Window).darker(120);
 #endif /* Q_WS_WIN || Q_WS_X11 */
 
@@ -1062,7 +1062,7 @@
     painter.fillRect(QRect(0,           0, 5, height() - 5), grad4); // left line
     painter.fillRect(QRect(width() - 5, 0, 5, height() - 5), grad5); // right line
 
-#if defined(Q_WS_WIN) || defined(Q_WS_X11)
+#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_PM)
     /* Paint frames: */
     painter.save();
     painter.setPen(color3);
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/runtime/UISession.cpp vbox-trunk\src\VBox\Frontends/VirtualBox/src/runtime/UISession.cpp
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/runtime/UISession.cpp	2015-10-25 03:03:00.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/runtime/UISession.cpp	2015-10-24 00:52:00.000000000 +0300
@@ -26,6 +26,11 @@
 # ifdef Q_WS_MAC
 #  include <QTimer>
 # endif /* Q_WS_MAC */
+# ifdef Q_WS_PM
+#  define INCL_GPIBITMAPS
+#  define INCL_WINPOINTERS
+#  include <os2.h>
+# endif
 
 /* GUI includes: */
 # include "VBoxGlobal.h"
@@ -923,6 +928,9 @@
 #ifdef Q_WS_WIN
     , m_alphaCursor(0)
 #endif /* Q_WS_WIN */
+#ifdef Q_WS_PM
+    , m_alphaCursor(0)
+#endif /* Q_WS_PM */
 #ifdef Q_WS_MAC
     , m_pWatchdogDisplayChange(0)
 #endif /* Q_WS_MAC */
@@ -1406,6 +1414,10 @@
     if (m_alphaCursor)
         DestroyIcon(m_alphaCursor);
 #endif /* Q_WS_WIN */
+#ifdef Q_WS_PM
+    if (m_alphaCursor)
+        WinDestroyPointer(m_alphaCursor);
+#endif /* Q_WS_PM */
 
     /* Save settings: */
     saveSessionSettings();
@@ -1637,6 +1649,213 @@
         XcursorImageDestroy(img);
     }
 
+#elif 0 //defined(Q_WS_PM)
+
+    //BITMAPV5HEADER bi;
+    BITMAPINFOHEADER2 bmih2;
+    BITMAPINFO2       bi;
+    HBITMAP hBitmap;
+    HBITMAP hMonoBitmap;
+    void    *lpBits;
+
+    /*
+    ::ZeroMemory(&bi, sizeof (BITMAPV5HEADER));
+    bi.bV5Size = sizeof(BITMAPV5HEADER);
+    bi.bV5Width = uWidth;
+    bi.bV5Height = - (LONG)uHeight;
+    bi.bV5Planes = 1;
+    bi.bV5BitCount = 32;
+    bi.bV5Compression = BI_BITFIELDS;
+    bi.bV5RedMask   = 0x00FF0000;
+    bi.bV5GreenMask = 0x0000FF00;
+    bi.bV5BlueMask  = 0x000000FF; */
+
+    printf("000\n");
+
+    memset(&bmih2, 0, sizeof(BITMAPINFOHEADER2));
+    bmih2.cbFix        = sizeof(BITMAPINFOHEADER2);
+    bmih2.cx           = uWidth;
+    bmih2.cy           = uHeight;
+    bmih2.cPlanes      = 1;
+    bmih2.cBitCount    = 32;
+
+    /* if (fHasAlpha)
+        bi.bV5AlphaMask = 0xFF000000;
+    else
+        bi.bV5AlphaMask = 0; */
+
+    //HDC hdc = GetDC(NULL);
+    HPS hps = WinGetPS(HWND_DESKTOP);
+
+    /* Create the DIB section with an alpha channel: */
+    printf("001\n");
+    //hBitmap = CreateDIBSection(hdc, (BITMAPINFO *)&bi, DIB_RGB_COLORS, (void **)&lpBits, NULL, (DWORD) 0);
+    hBitmap = GpiCreateBitmap(hps, &bmih2, 0L, NULL, &bi);
+    printf("002\n");
+    lpBits  = (void *)&bi.argbColor;
+    printf("003\n");
+
+    //ReleaseDC(NULL, hdc);
+
+    hMonoBitmap = NULL;
+    if (fHasAlpha)
+    {
+        printf("004\n");
+        BITMAPINFOHEADER2 bmih;
+        memset(&bmih, 0, sizeof(BITMAPINFOHEADER2));
+        bmih.cbFix        = sizeof(BITMAPINFOHEADER2);
+        bmih.cx           = uWidth;
+        bmih.cy           = uHeight;
+        bmih.cPlanes      = 1;
+        bmih.cBitCount    = 1;
+
+        /* Create an empty mask bitmap: */
+        printf("005\n");
+        //hMonoBitmap = CreateBitmap(uWidth, uHeight, 1, 1, NULL);
+        hMonoBitmap = GpiCreateBitmap(hps, &bmih, 0L, NULL, NULL);
+        printf("006\n");
+    }
+    else
+    {
+        /* Word aligned AND mask. Will be allocated and created if necessary. */
+        printf("007\n");
+        uint8_t *pu8AndMaskWordAligned = NULL;
+
+        /* Width in bytes of the original AND mask scan line. */
+        uint32_t cbAndMaskScan = (uWidth + 7) / 8;
+
+        if (cbAndMaskScan & 1)
+        {
+            /* Original AND mask is not word aligned. */
+
+            /* Allocate memory for aligned AND mask. */
+            printf("008\n");
+            pu8AndMaskWordAligned = (uint8_t *)RTMemTmpAllocZ((cbAndMaskScan + 1) * uHeight);
+
+            Assert(pu8AndMaskWordAligned);
+
+            if (pu8AndMaskWordAligned)
+            {
+                /* According to MSDN the padding bits must be 0.
+                 * Compute the bit mask to set padding bits to 0 in the last byte of original AND mask. */
+                printf("009\n");
+                uint32_t u32PaddingBits = cbAndMaskScan * 8  - uWidth;
+                Assert(u32PaddingBits < 8);
+                uint8_t u8LastBytesPaddingMask = (uint8_t)(0xFF << u32PaddingBits);
+
+                Log(("u8LastBytesPaddingMask = %02X, aligned w = %d, width = %d, cbAndMaskScan = %d\n",
+                      u8LastBytesPaddingMask, (cbAndMaskScan + 1) * 8, uWidth, cbAndMaskScan));
+
+                uint8_t *src = (uint8_t *)srcAndMaskPtr;
+                uint8_t *dst = pu8AndMaskWordAligned;
+
+                unsigned i;
+                printf("010\n");
+                for (i = 0; i < uHeight; i++)
+                {
+                    memcpy(dst, src, cbAndMaskScan);
+
+                    dst[cbAndMaskScan - 1] &= u8LastBytesPaddingMask;
+
+                    src += cbAndMaskScan;
+                    dst += cbAndMaskScan + 1;
+                }
+                printf("011\n");
+            }
+        }
+
+        BITMAPINFOHEADER2 bmih;
+        memset(&bmih, 0, sizeof(BITMAPINFOHEADER2));
+        bmih.cbFix        = sizeof(BITMAPINFOHEADER2);
+        bmih.cx           = uWidth;
+        bmih.cy           = uHeight;
+        bmih.cPlanes      = 1;
+        bmih.cBitCount    = 1;
+
+        /* Create the AND mask bitmap: */
+        printf("012\n");
+        hMonoBitmap = GpiCreateBitmap(hps, &bmih, 0L, NULL, NULL);
+        //hMonoBitmap = ::CreateBitmap(uWidth, uHeight, 1, 1,
+        //                             pu8AndMaskWordAligned? pu8AndMaskWordAligned: srcAndMaskPtr);
+
+        printf("013\n");
+        if (pu8AndMaskWordAligned)
+        {
+            RTMemTmpFree(pu8AndMaskWordAligned);
+        }
+    }
+
+    printf("014\n");
+    WinReleasePS(hps);
+
+    Assert(hBitmap);
+    Assert(hMonoBitmap);
+
+    printf("015\n");
+    if (hBitmap && hMonoBitmap)
+    {
+        ULONG *dstShapePtr = (ULONG *) lpBits;
+        //DWORD *dstShapePtr = (DWORD *) lpBits;
+
+        printf("016\n");
+        for (uint y = 0; y < uHeight; y ++)
+        {
+            memcpy(dstShapePtr, srcShapePtr, srcShapePtrScan);
+            srcShapePtr += srcShapePtrScan;
+            dstShapePtr += uWidth;
+        }
+
+        //ICONINFO ii;
+        //ii.fIcon = FALSE;
+        //ii.xHotspot = uXHot;
+        //ii.yHotspot = uYHot;
+        //ii.hbmMask = hMonoBitmap;
+        //ii.hbmColor = hBitmap;
+
+        printf("hMonoBitmap=%lx, hBitmap=%lx\n", hMonoBitmap, hBitmap);
+
+        POINTERINFO ptri;
+        ptri.fPointer = TRUE;          /* size indicator */
+        ptri.xHotspot = uXHot;         /* hotspot X */
+        ptri.yHotspot = uYHot;         /* hotspot Y */
+        ptri.hbmPointer = hMonoBitmap; /* and/xor   */
+        ptri.hbmColor = hBitmap;       /* color     */
+
+        printf("017\n");
+        //HCURSOR hAlphaCursor = CreateIconIndirect(&ii);
+        HPOINTER hAlphaCursor = WinCreatePointerIndirect(HWND_DESKTOP, &ptri);
+        printf("018\n");
+        Assert(hAlphaCursor);
+        printf("019\n");
+        if (hAlphaCursor)
+        {
+            /* Set the new cursor: */
+            printf("020\n");
+            m_cursor = QCursor(hAlphaCursor);
+            printf("021\n");
+            if (m_alphaCursor)
+                WinDestroyPointer(m_alphaCursor);
+                //DestroyIcon(m_alphaCursor);
+            printf("022\n");
+            m_alphaCursor = hAlphaCursor;
+            m_fIsValidPointerShapePresent = true;
+        }
+    }
+
+    //if (hMonoBitmap)
+    //    DeleteObject(hMonoBitmap);
+    //if (hBitmap)
+    //    DeleteObject(hBitmap);
+
+    printf("023\n");
+    if (hMonoBitmap)
+        GpiDeleteBitmap(hMonoBitmap);
+    printf("024\n");
+    if (hBitmap)
+        GpiDeleteBitmap(hBitmap);
+
+    printf("025\n");
+
 #elif defined(Q_WS_MAC)
 
     /* Create a ARGB image out of the shape data. */
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/runtime/UISession.h vbox-trunk\src\VBox\Frontends/VirtualBox/src/runtime/UISession.h
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/runtime/UISession.h	2015-10-25 03:03:00.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/runtime/UISession.h	2015-10-24 20:59:28.000000000 +0300
@@ -447,6 +447,9 @@
 #if defined(Q_WS_WIN)
     HCURSOR m_alphaCursor;
 #endif
+#if defined(Q_WS_PM)
+    HPOINTER m_alphaCursor;
+#endif
 
     /** @name Host-screen configuration variables.
      * @{ */
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.cpp vbox-trunk\src\VBox\Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.cpp
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.cpp	2015-10-25 03:03:00.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/runtime/UIStatusBarEditorWindow.cpp	2015-10-24 07:22:16.000000000 +0300
@@ -531,7 +531,7 @@
     QColor color1 = pal.color(QPalette::Window).lighter(110);
     color1.setAlpha(0);
     QColor color2 = pal.color(QPalette::Window).darker(200);
-#if defined(Q_WS_WIN) || defined(Q_WS_X11)
+#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_PM)
     QColor color3 = pal.color(QPalette::Window).darker(120);
 #endif /* Q_WS_WIN || Q_WS_X11 */
 
@@ -574,7 +574,7 @@
     painter.fillRect(QRect(0,           5, 5, height() - 5), grad4); // left line
     painter.fillRect(QRect(width() - 5, 5, 5, height() - 5), grad5); // right line
 
-#if defined(Q_WS_WIN) || defined(Q_WS_X11)
+#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_PM)
     /* Paint frames: */
     painter.save();
     painter.setPen(color3);
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp vbox-trunk\src\VBox\Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp	2015-10-25 03:03:12.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp	2015-10-24 07:48:34.000000000 +0300
@@ -238,7 +238,8 @@
     retranslateUi();
 
 #ifndef VBOX_WITH_EHCI
-    mCbUSB2->setHidden(true);
+    //mCbUSB2->setHidden(true);
+    mGbUSB->setHidden(true);
 #endif /* VBOX_WITH_EHCI */
 }
 
diff -urN vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/VBoxGlobalSettings.cpp vbox-trunk\src\VBox\Frontends/VirtualBox/src/VBoxGlobalSettings.cpp
--- vbox-trunk-bk\src\VBox\Frontends/VirtualBox/src/VBoxGlobalSettings.cpp	2015-10-25 03:03:18.000000000 +0300
+++ vbox-trunk\src\VBox\Frontends/VirtualBox/src/VBoxGlobalSettings.cpp	2015-10-23 02:45:52.000000000 +0300
@@ -53,6 +53,8 @@
     /* default settings */
 #if defined (Q_WS_WIN)
     hostCombo = "163"; // VK_RCONTROL
+#elif defined (Q_WS_PM)
+    hostCombo = "10";  // VK_CTRL (?), 10
 #elif defined (Q_WS_X11)
     hostCombo = "65508"; // XK_Control_R
 #elif defined (Q_WS_MAC)
