Index: /trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.cpp	(revision 103137)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.cpp	(revision 103138)
@@ -247,4 +247,5 @@
     virtual bool isCloudVM() const = 0;
     virtual void updateColumnData() = 0;
+    virtual void setMachineState(int iState) = 0;
 
     QString columnData(int iColumnIndex) const;
@@ -302,5 +303,5 @@
     virtual void updateColumnData() override;
     virtual QString machineStateString() const override;
-    void setMachineState(KMachineState enmState);
+    virtual void setMachineState(int iState) override;
 
 protected:
@@ -332,8 +333,10 @@
     UIActivityOverviewItemCloud();
     ~UIActivityOverviewItemCloud();
+    void updateMachineState();
     virtual bool isRunning() const override;
     virtual bool isCloudVM() const override;
     virtual void updateColumnData() override;
     virtual QString machineStateString() const override;
+    virtual void setMachineState(int iState) override;
 
 protected:
@@ -348,4 +351,5 @@
     QTimer *m_pTimer;
     CCloudMachine m_comCloudMachine;
+    KCloudMachineState m_enmMachineState;
 };
 
@@ -950,4 +954,5 @@
     , m_comCloudMachine(comCloudMachine)
 {
+    m_enmMachineState = comCloudMachine.GetState();
     m_pTimer = new QTimer(this);
     if (m_pTimer)
@@ -968,9 +973,13 @@
 }
 
+void UIActivityOverviewItemCloud::updateMachineState()
+{
+    if (m_comCloudMachine.isOk())
+        setMachineState(m_comCloudMachine.GetState());
+}
+
 bool UIActivityOverviewItemCloud::isRunning() const
 {
-    if (!m_comCloudMachine.isOk())
-        return false;
-    return m_comCloudMachine.GetState() == KCloudMachineState_Running;
+    return m_enmMachineState == KCloudMachineState_Running;
 }
 
@@ -1002,4 +1011,14 @@
 void UIActivityOverviewItemCloud::sltTimeout()
 {
+}
+
+void UIActivityOverviewItemCloud::setMachineState(int iState)
+{
+    if (iState <= KCloudMachineState_Invalid || iState >= KCloudMachineState_Max)
+        return;
+    KCloudMachineState enmState = static_cast<KCloudMachineState>(iState);
+    if (m_enmMachineState == enmState)
+        return;
+    m_enmMachineState = enmState;
 }
 
@@ -1062,11 +1081,15 @@
 }
 
-void UIActivityOverviewItemLocal::setMachineState(KMachineState enmState)
-{
+void UIActivityOverviewItemLocal::setMachineState(int iState)
+{
+    if (iState <= KMachineState_Null || iState >= KMachineState_Max)
+        return;
+    KMachineState enmState = static_cast<KMachineState>(iState);
+    if (m_enmMachineState == enmState)
+        return;
     m_enmMachineState = enmState;
     if (m_enmMachineState == KMachineState_Running)
         resetDebugger();
 }
-
 
 void UIActivityOverviewItemLocal::updateMetricData()
@@ -1369,4 +1392,15 @@
         if (!fFound)
             m_itemList.append(new UIActivityOverviewItemCloud(this, id, comMachine.GetName(), comMachine));
+    }
+
+    /* Update cloud machine states: */
+    for (int i = 0; i < m_itemList.size(); ++i)
+    {
+        if (!m_itemList[i] || !m_itemList[i]->isCloudVM())
+            continue;
+        UIActivityOverviewItemCloud *pItem = qobject_cast<UIActivityOverviewItemCloud*>(m_itemList[i]);
+        if (!pItem)
+            continue;
+        pItem->updateMachineState();
     }
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.h	(revision 103137)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.h	(revision 103138)
@@ -74,5 +74,4 @@
     bool isCurrentTool() const;
     void setIsCurrentTool(bool fIsCurrentTool);
-
     void setCloudMachineItems(const QList<UIVirtualMachineItemCloud*> &cloudItems);
 
