Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp	(revision 102831)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp	(revision 102836)
@@ -114,5 +114,5 @@
     , m_enmMachineState(KCloudMachineState_Invalid)
     , m_enmFakeCloudItemState(enmState)
-    , m_fRefreshScheduled(false)
+    , m_fUpdateRequiredByLocalReason(false)
     , m_pProgressTaskRefresh(0)
 {
@@ -125,5 +125,5 @@
     , m_enmMachineState(KCloudMachineState_Invalid)
     , m_enmFakeCloudItemState(UIFakeCloudVirtualMachineItemState_NotApplicable)
-    , m_fRefreshScheduled(false)
+    , m_fUpdateRequiredByLocalReason(false)
     , m_pProgressTaskRefresh(0)
 {
@@ -148,13 +148,14 @@
 }
 
-void UIVirtualMachineItemCloud::updateInfoAsync(bool fDelayed, bool fSubscribe /* = false */)
+void UIVirtualMachineItemCloud::setUpdateRequiredByLocalReason(bool fRequired)
+{
+    m_fUpdateRequiredByLocalReason = fRequired;
+}
+
+void UIVirtualMachineItemCloud::updateInfoAsync(bool fDelayed)
 {
     /* Ignore refresh request if progress-task is absent: */
     if (!m_pProgressTaskRefresh)
         return;
-
-    /* Mark update scheduled if requested: */
-    if (fSubscribe)
-        m_fRefreshScheduled = true;
 
     /* Schedule refresh request in a 10 or 0 seconds
@@ -165,5 +166,5 @@
 }
 
-void UIVirtualMachineItemCloud::stopAsyncUpdates()
+void UIVirtualMachineItemCloud::waitForAsyncInfoUpdateFinished()
 {
     /* Ignore cancel request if progress-task is absent: */
@@ -172,15 +173,5 @@
 
     /* Mark update canceled in any case: */
-    m_fRefreshScheduled = false;
-}
-
-void UIVirtualMachineItemCloud::waitForAsyncInfoUpdateFinished()
-{
-    /* Ignore cancel request if progress-task is absent: */
-    if (!m_pProgressTaskRefresh)
-        return;
-
-    /* Mark update canceled in any case: */
-    m_fRefreshScheduled = false;
+    m_fUpdateRequiredByLocalReason = false;
 
     /* Cancel refresh request
@@ -400,7 +391,7 @@
     emit sigRefreshFinished();
 
-    /* Refresh again if scheduled: */
-    if (m_fRefreshScheduled)
-        updateInfoAsync(true /* async? */);
+    /* Refresh again if required: */
+    if (m_fUpdateRequiredByLocalReason)
+        updateInfoAsync(true /* delayed? */);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.h	(revision 102831)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.h	(revision 102836)
@@ -84,9 +84,8 @@
         QString fakeCloudItemErrorMessage() const { return m_strFakeCloudItemErrorMessage; }
 
-        /** Updates cloud VM info async way, @a fDelayed if requested or instant otherwise.
-          * @param  fSubscribe  Brings whether this update should be performed periodically. */
-        void updateInfoAsync(bool fDelayed, bool fSubscribe = false);
-        /** Stop periodical updates previously requested. */
-        void stopAsyncUpdates();
+        /** Defines whether update is @a fRequired by local reason. */
+        void setUpdateRequiredByLocalReason(bool fRequired);
+        /** Updates cloud VM info async way, @a fDelayed if requested or instantly otherwise. */
+        void updateInfoAsync(bool fDelayed);
         /** Makes sure async info update is finished.
           * @note  This method creates own event-loop to avoid blocking calling thread event processing,
@@ -166,6 +165,6 @@
         QString                             m_strFakeCloudItemErrorMessage;
 
-        /** Holds whether we plan to refresh info. */
-        bool            m_fRefreshScheduled;
+        /** Holds whether update is required by local reason. */
+        bool            m_fUpdateRequiredByLocalReason;
         /** Holds the refresh progress-task instance. */
         UIProgressTask *m_pProgressTaskRefresh;
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp	(revision 102831)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp	(revision 102836)
@@ -1647,5 +1647,6 @@
     {
         AssertReturnVoid(pNode && pNode->cacheType() == UIVirtualMachineItemType_CloudReal);
-        pNode->cache()->toCloud()->updateInfoAsync(false /* delayed? */);
+        UIVirtualMachineItemCloud *pCloudMachineItem = pNode->cache()->toCloud();
+        pCloudMachineItem->updateInfoAsync(false /* delayed? */);
     }
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp	(revision 102831)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp	(revision 102836)
@@ -241,8 +241,8 @@
         UIVirtualMachineItemCloud *pCloudMachineItem = cache()->toCloud();
         AssertPtrReturnVoid(pCloudMachineItem);
-        if (fSelected && pCloudMachineItem->accessible())
-            pCloudMachineItem->updateInfoAsync(false /* delayed? */, true /* subscribe */);
-        else
-            pCloudMachineItem->stopAsyncUpdates();
+        const bool fUpdateRequired = fSelected && pCloudMachineItem->accessible();
+        pCloudMachineItem->setUpdateRequiredByLocalReason(fUpdateRequired);
+        if (fUpdateRequired)
+            pCloudMachineItem->updateInfoAsync(false /* delayed? */);
     }
 }
