Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp	(revision 58345)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp	(revision 58346)
@@ -394,2 +394,64 @@
 }
 
+QPixmap UIIconPoolGeneral::guestOSTypePixmap(const QString &strOSTypeID, const QSize &physicalSize) const
+{
+    /* Prepare fallback pixmap: */
+    static QPixmap nullPixmap;
+
+    /* If we do NOT have that 'guest OS type' pixmap cached already: */
+    if (!m_guestOSTypePixmaps.contains(strOSTypeID))
+    {
+        /* Compose proper pixmap if we have that 'guest OS type' known: */
+        if (m_guestOSTypeIconNames.contains(strOSTypeID))
+            m_guestOSTypePixmaps[strOSTypeID] = QPixmap(m_guestOSTypeIconNames[strOSTypeID]);
+        /* Assign fallback pixmap if we do NOT have that 'guest OS type' known: */
+        else
+            m_guestOSTypePixmaps[strOSTypeID] = nullPixmap;
+    }
+
+    /* Retrieve corresponding pixmap: */
+    const QPixmap &pixmap = m_guestOSTypePixmaps.value(strOSTypeID);
+    AssertMsgReturn(!pixmap.isNull(),
+                    ("Undefined pixmap for type '%s'.", strOSTypeID.toLatin1().constData()),
+                    nullPixmap);
+
+    /* Return pixmap of the requested size: */
+    return pixmap.size() == physicalSize ? pixmap : pixmap.scaled(physicalSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+}
+
+QPixmap UIIconPoolGeneral::guestOSTypePixmapHiDPI(const QString &strOSTypeID, const QSize &physicalSize) const
+{
+    /* Prepare fallback pixmap: */
+    static QPixmap nullPixmap;
+
+    /* If we do NOT have that 'guest OS type' pixmap cached already: */
+    if (!m_guestOSTypePixmapsHiDPI.contains(strOSTypeID))
+    {
+        /* Compose proper pixmap if we have that 'guest OS type' known: */
+        if (m_guestOSTypeIconNames.contains(strOSTypeID))
+        {
+            /* Get name: */
+            const QString strName =  m_guestOSTypeIconNames.value(strOSTypeID);
+            /* Parse name to prefix and suffix: */
+            const QString strPrefix = strName.section('.', 0, -2);
+            const QString strSuffix = strName.section('.', -1, -1);
+            /* Prepare HiDPI pixmap on the basis of values above: */
+            const QPixmap pixmapHiDPI(strPrefix + "_hidpi." + strSuffix);
+            /* Remember HiDPI pixmap: */
+            m_guestOSTypePixmapsHiDPI[strOSTypeID] = pixmapHiDPI;
+        }
+        /* Assign fallback pixmap if we do NOT have that 'guest OS type' known: */
+        else
+            m_guestOSTypePixmapsHiDPI[strOSTypeID] = nullPixmap;
+    }
+
+    /* Retrieve corresponding pixmap: */
+    const QPixmap &pixmap = m_guestOSTypePixmapsHiDPI.value(strOSTypeID);
+    AssertMsgReturn(!pixmap.isNull(),
+                    ("Undefined pixmap for type '%s'.", strOSTypeID.toLatin1().constData()),
+                    nullPixmap);
+
+    /* Return pixmap of the requested size: */
+    return pixmap.size() == physicalSize ? pixmap : pixmap.scaled(physicalSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+}
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h	(revision 58345)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h	(revision 58346)
@@ -107,4 +107,9 @@
     QPixmap guestOSTypeIcon(const QString &strOSTypeID, QSize *pLogicalSize = 0) const;
 
+    /** Returns pixmap corresponding to passed @a strOSTypeID and @a physicalSize. */
+    QPixmap guestOSTypePixmap(const QString &strOSTypeID, const QSize &physicalSize) const;
+    /** Returns HiDPI pixmap corresponding to passed @a strOSTypeID and @a physicalSize. */
+    QPixmap guestOSTypePixmapHiDPI(const QString &strOSTypeID, const QSize &physicalSize) const;
+
 private:
 
@@ -113,4 +118,8 @@
     /** Guest OS type icons cache. */
     mutable QHash<QString, QIcon> m_guestOSTypeIcons;
+    /** Holds the guest OS type pixmaps cache. */
+    mutable QHash<QString, QPixmap> m_guestOSTypePixmaps;
+    /** Holds the guest OS type HiDPI pixmaps cache. */
+    mutable QHash<QString, QPixmap> m_guestOSTypePixmapsHiDPI;
 };
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 58345)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 58346)
@@ -658,4 +658,28 @@
     /* Redirect to general icon-pool: */
     return m_pIconPool->guestOSTypeIcon(strOSTypeID, pLogicalSize);
+}
+
+QPixmap VBoxGlobal::vmGuestOSTypePixmap(const QString &strOSTypeID, const QSize &physicalSize) const
+{
+    /* Prepare fallback pixmap: */
+    static QPixmap nullPixmap;
+
+    /* Make sure general icon-pool initialized: */
+    AssertReturn(m_pIconPool, nullPixmap);
+
+    /* Redirect to general icon-pool: */
+    return m_pIconPool->guestOSTypePixmap(strOSTypeID, physicalSize);
+}
+
+QPixmap VBoxGlobal::vmGuestOSTypePixmapHiDPI(const QString &strOSTypeID, const QSize &physicalSize) const
+{
+    /* Prepare fallback pixmap: */
+    static QPixmap nullPixmap;
+
+    /* Make sure general icon-pool initialized: */
+    AssertReturn(m_pIconPool, nullPixmap);
+
+    /* Redirect to general icon-pool: */
+    return m_pIconPool->guestOSTypePixmapHiDPI(strOSTypeID, physicalSize);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 58345)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 58346)
@@ -256,4 +256,9 @@
     QPixmap vmGuestOSTypeIcon(const QString &strOSTypeID, QSize *pLogicalSize = 0) const;
 
+    /** Returns pixmap corresponding to passed @a strOSTypeID and @a physicalSize. */
+    QPixmap vmGuestOSTypePixmap(const QString &strOSTypeID, const QSize &physicalSize) const;
+    /** Returns HiDPI pixmap corresponding to passed @a strOSTypeID and @a physicalSize. */
+    QPixmap vmGuestOSTypePixmapHiDPI(const QString &strOSTypeID, const QSize &physicalSize) const;
+
     CGuestOSType vmGuestOSType (const QString &aTypeId,
                                 const QString &aFamilyId = QString::null) const;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 58345)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 58346)
@@ -1222,5 +1222,5 @@
     /* Now the dock icon preview */
     QString osTypeId = guest().GetOSTypeId();
-    m_pDockIconPreview = new UIDockIconPreview(uisession(), vboxGlobal().vmGuestOSTypeIcon(osTypeId));
+    m_pDockIconPreview = new UIDockIconPreview(uisession(), vboxGlobal().vmGuestOSTypePixmapHiDPI(osTypeId, QSize(64, 64)));
 
     /* Should the dock-icon be updated at runtime? */
