Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.cpp	(revision 45583)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.cpp	(revision 45586)
@@ -141,17 +141,33 @@
                                  const QString &strButtonText1, const QString &strButtonText2, const QString &strButtonText3) const
 {
-    /* Choose at least one button by 'default': */
-    if (iButton1 == 0 && iButton2 == 0 && iButton3 == 0)
-        iButton1 = AlertButton_Ok | AlertButtonOption_Default | AlertButtonOption_Escape;
-
-    /* Create popup-box window: */
-    QWidget *pPopupBoxParent = windowManager().realParentWindow(pParent ? pParent : windowManager().mainWindowShown());
-    UIPopupPane *pPopupBox = new UIPopupPane(pPopupBoxParent, strId,
-                                             strMessage, strDetails,
-                                             iButton1, iButton2, iButton3,
-                                             strButtonText1, strButtonText2, strButtonText3);
-    m_popups.insert(strId, pPopupBox);
-    connect(pPopupBox, SIGNAL(sigDone(int)), this, SLOT(sltPopupDone(int)));
-    pPopupBox->show();
+    /* Prepare popup-pane: */
+    UIPopupPane *pPopupPane = 0;
+    /* Is there already popup-pane with the same ID? */
+    if (m_popups.contains(strId))
+    {
+        /* Get existing one: */
+        pPopupPane = m_popups[strId];
+        /* And update message and details: */
+        pPopupPane->setMessage(strMessage);
+        pPopupPane->setDetails(strDetails);
+    }
+    /* There is no popup-pane with the same ID? */
+    else
+    {
+        /* Choose at least one button to be the 'default' and 'escape': */
+        if (iButton1 == 0 && iButton2 == 0 && iButton3 == 0)
+            iButton1 = AlertButton_Ok | AlertButtonOption_Default | AlertButtonOption_Escape;
+        /* Create popup-pane and insert it into our map: */
+        QWidget *pPopupBoxParent = windowManager().realParentWindow(pParent ? pParent : windowManager().mainWindowShown());
+        pPopupPane = new UIPopupPane(pPopupBoxParent, strId,
+                                     strMessage, strDetails,
+                                     iButton1, iButton2, iButton3,
+                                     strButtonText1, strButtonText2, strButtonText3);
+        m_popups.insert(strId, pPopupPane);
+        /* Attach popup-pane connections: */
+        connect(pPopupPane, SIGNAL(sigDone(int)), this, SLOT(sltPopupDone(int)));
+    }
+    /* Show popup-pane: */
+    pPopupPane->show();
 }
 
@@ -182,5 +198,5 @@
     if (fSupportsAbsolute)
     {
-        alert(0, QString("remindAboutMouseIntegrationOn"),
+        alert(0, QString("remindAboutMouseIntegration"),
               tr("<p>The Virtual Machine reports that the guest OS supports <b>mouse pointer integration</b>. "
                  "This means that you do not need to <i>capture</i> the mouse pointer to be able to use it in your guest OS -- "
@@ -195,5 +211,5 @@
     else
     {
-        alert(0, QString("remindAboutMouseIntegrationOff"),
+        alert(0, QString("remindAboutMouseIntegration"),
               tr("<p>The Virtual Machine reports that the guest OS does not support <b>mouse pointer integration</b> "
                  "in the current video mode. You need to capture the mouse (by clicking over the VM display "
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp	(revision 45583)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp	(revision 45586)
@@ -50,4 +50,5 @@
     /* State-machine 'forward' animation: */
     QPropertyAnimation *pForwardAnimation = new QPropertyAnimation(pParent, strPropertyName, pParent);
+    pForwardAnimation->setEasingCurve(QEasingCurve(QEasingCurve::InOutCubic));
     pForwardAnimation->setDuration(iAnimationDuration);
     pForwardAnimation->setStartValue(iStartValue);
@@ -55,4 +56,5 @@
     /* State-machine 'backward' animation: */
     QPropertyAnimation *pBackwardAnimation = new QPropertyAnimation(pParent, strPropertyName, pParent);
+    pBackwardAnimation->setEasingCurve(QEasingCurve(QEasingCurve::InOutCubic));
     pBackwardAnimation->setDuration(iAnimationDuration);
     pBackwardAnimation->setStartValue(iFinalValue);
@@ -189,4 +191,25 @@
     /* Cleanup: */
     cleanup();
+}
+
+void UIPopupPane::setMessage(const QString &strMessage)
+{
+    /* Make sure somthing changed: */
+    if (m_strMessage == strMessage)
+        return;
+
+    /* Fetch new message: */
+    m_strMessage = strMessage;
+    m_pTextPane->setText(m_strMessage);
+}
+
+void UIPopupPane::setDetails(const QString &strDetails)
+{
+    /* Make sure somthing changed: */
+    if (m_strDetails == strDetails)
+        return;
+
+    /* Fetch new details: */
+    m_strDetails = strDetails;
 }
 
@@ -579,5 +602,5 @@
     /* Configure painter clipping: */
     QPainterPath path;
-    int iDiameter = 5;
+    int iDiameter = 6;
     QSizeF arcSize(2 * iDiameter, 2 * iDiameter);
     path.moveTo(iDiameter, 0);
@@ -594,6 +617,10 @@
     /* Fill with background: */
     QColor currentColor(palette().color(QPalette::Window));
-    QColor newColor(currentColor.red(), currentColor.green(), currentColor.blue(), opacity());
-    painter.fillRect(rect, newColor);
+    QColor newColor1(currentColor.red(), currentColor.green(), currentColor.blue(), opacity());
+    QColor newColor2 = newColor1.darker(115);
+    QLinearGradient headerGradient(rect.topLeft(), rect.topRight());
+    headerGradient.setColorAt(0, newColor1);
+    headerGradient.setColorAt(1, newColor2);
+    painter.fillRect(rect, headerGradient);
 }
 
@@ -678,4 +705,7 @@
             pMainLayout->addWidget(m_pLabel);
             /* Prepare label: */
+            QFont currentFont = m_pLabel->font();
+            currentFont.setPointSize(currentFont.pointSize() - 2);
+            m_pLabel->setFont(currentFont);
             m_pLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
             m_pLabel->setWordWrap(true);
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.h	(revision 45583)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.h	(revision 45586)
@@ -68,4 +68,8 @@
     /* API: Id stuff: */
     const QString& id() const { return m_strId; }
+
+    /* API: Text stuff: */
+    void setMessage(const QString &strMessage);
+    void setDetails(const QString &strDetails);
 
 private slots:
