Index: /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h	(revision 84189)
@@ -129,4 +129,5 @@
 
 /* Declare COM canConvert specializations: */
+template<> SHARED_LIBRARY_STUFF bool canConvert<KCloudMachineState>();
 template<> SHARED_LIBRARY_STUFF bool canConvert<KMachineState>();
 template<> SHARED_LIBRARY_STUFF bool canConvert<KSessionState>();
@@ -273,4 +274,6 @@
 
 /* Declare COM conversion specializations: */
+template<> SHARED_LIBRARY_STUFF QIcon toIcon(const KCloudMachineState &state);
+template<> SHARED_LIBRARY_STUFF QString toString(const KCloudMachineState &state);
 template<> SHARED_LIBRARY_STUFF QColor toColor(const KMachineState &state);
 template<> SHARED_LIBRARY_STUFF QIcon toIcon(const KMachineState &state);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp	(revision 84189)
@@ -30,4 +30,5 @@
 /* Determines if <Object of type X> can be converted to object of other type.
  * These functions returns 'true' for all allowed conversions. */
+template<> bool canConvert<KCloudMachineState>() { return true; }
 template<> bool canConvert<KMachineState>() { return true; }
 template<> bool canConvert<KSessionState>() { return true; }
@@ -54,4 +55,40 @@
 template<> bool canConvert<KChipsetType>() { return true; }
 template<> bool canConvert<KNATProtocol>() { return true; }
+
+/* QIcon <= KCloudMachineState: */
+template<> QIcon toIcon(const KCloudMachineState &state)
+{
+    switch (state)
+    {
+        case KCloudMachineState_Provisioning:  return UIIconPool::iconSet(":/state_running_16px.png");
+        case KCloudMachineState_Running:       return UIIconPool::iconSet(":/state_running_16px.png");
+        case KCloudMachineState_Starting:      return UIIconPool::iconSet(":/state_running_16px.png");
+        case KCloudMachineState_Stopping:      return UIIconPool::iconSet(":/state_saving_16px.png");
+        case KCloudMachineState_Stopped:       return UIIconPool::iconSet(":/state_saved_16px.png");
+        case KCloudMachineState_CreatingImage: return UIIconPool::iconSet(":/state_saved_16px.png");
+        case KCloudMachineState_Terminating:   return UIIconPool::iconSet(":/state_discarding_16px.png");
+        case KCloudMachineState_Terminated:    return UIIconPool::iconSet(":/state_powered_off_16px.png");
+        default: AssertMsgFailed(("No icon for %d", state)); break;
+    }
+    return QIcon();
+}
+
+/* QString <= KCloudMachineState: */
+template<> QString toString(const KCloudMachineState &state)
+{
+    switch (state)
+    {
+        case KCloudMachineState_Provisioning:  return QApplication::translate("UICommon", "Provisioning", "CloudMachineState");
+        case KCloudMachineState_Running:       return QApplication::translate("UICommon", "Running", "CloudMachineState");
+        case KCloudMachineState_Starting:      return QApplication::translate("UICommon", "Starting", "CloudMachineState");
+        case KCloudMachineState_Stopping:      return QApplication::translate("UICommon", "Stopping", "CloudMachineState");
+        case KCloudMachineState_Stopped:       return QApplication::translate("UICommon", "Stopped", "CloudMachineState");
+        case KCloudMachineState_CreatingImage: return QApplication::translate("UICommon", "Creating Image", "CloudMachineState");
+        case KCloudMachineState_Terminating:   return QApplication::translate("UICommon", "Terminating", "CloudMachineState");
+        case KCloudMachineState_Terminated:    return QApplication::translate("UICommon", "Terminated", "CloudMachineState");
+        default: AssertMsgFailed(("No text for %d", state)); break;
+    }
+    return QString();
+}
 
 /* QColor <= KMachineState: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 84189)
@@ -810,6 +810,8 @@
             continue;
 
-        /* Get machine item state: */
-        const KMachineState enmState = pItem->machineState();
+        /* Get local machine item state: */
+        UIVirtualMachineItemLocal *pLocalItem = pItem->toLocal();
+        AssertPtrReturnVoid(pLocalItem);
+        const KMachineState enmState = pLocalItem->machineState();
 
         /* Check if current item could be paused/resumed: */
@@ -937,6 +939,10 @@
         /* Get session machine: */
         CMachine comMachine = comSession.GetMachine();
-        /* Get machine item state: */
-        const KMachineState enmState = pItem->machineState();
+
+        /* Get local machine item state: */
+        UIVirtualMachineItemLocal *pLocalItem = pItem->toLocal();
+        AssertPtrReturnVoid(pLocalItem);
+        const KMachineState enmState = pLocalItem->machineState();
+
         /* Pause VM first if necessary: */
         if (enmState != KMachineState_Paused)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.cpp	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.cpp	(revision 84189)
@@ -28,5 +28,4 @@
     : m_enmType(enmType)
     , m_fAccessible(false)
-    , m_enmMachineState(KMachineState_Null)
     , m_enmConfigurationAccessLevel(ConfigurationAccessLevel_Null)
     , m_fHasDetails(false)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h	(revision 84189)
@@ -85,6 +85,4 @@
     /** @name State attributes.
       * @{ */
-        /** Returns cached machine state. */
-        KMachineState machineState() const { return m_enmMachineState; }
         /** Returns cached machine state name. */
         QString machineStateName() const { return m_strMachineStateName; }
@@ -172,6 +170,4 @@
     /** @name State attributes.
       * @{ */
-        /** Holds cached machine state. */
-        KMachineState  m_enmMachineState;
         /** Holds cached machine state name. */
         QString        m_strMachineStateName;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp	(revision 84189)
@@ -37,4 +37,5 @@
 UIVirtualMachineItemCloud::UIVirtualMachineItemCloud()
     : UIVirtualMachineItem(UIVirtualMachineItemType_CloudFake)
+    , m_enmMachineState(KCloudMachineState_Invalid)
     , m_enmFakeCloudItemState(UIFakeCloudVirtualMachineItemState_Loading)
     , m_pTask(0)
@@ -46,4 +47,5 @@
     : UIVirtualMachineItem(UIVirtualMachineItemType_CloudReal)
     , m_comCloudMachine(comCloudMachine)
+    , m_enmMachineState(KCloudMachineState_Invalid)
     , m_enmFakeCloudItemState(UIFakeCloudVirtualMachineItemState_NotApplicable)
     , m_pTask(0)
@@ -94,5 +96,5 @@
 
             /* Determine VM states: */
-            m_enmMachineState = KMachineState_PoweredOff;
+            m_enmMachineState = KCloudMachineState_Stopped;
             m_strMachineStateName = gpConverter->toString(m_enmMachineState);
             switch (m_enmFakeCloudItemState)
@@ -133,5 +135,5 @@
 
             /* Determine VM states: */
-            m_enmMachineState = m_fAccessible ? m_comCloudMachine.GetState() : KMachineState_PoweredOff;
+            m_enmMachineState = m_fAccessible ? toCloudMachineState(m_comCloudMachine.GetState()) : KCloudMachineState_Stopped;
             m_strMachineStateName = gpConverter->toString(m_enmMachineState);
             m_machineStateIcon = gpConverter->toIcon(m_enmMachineState);
@@ -183,15 +185,12 @@
 bool UIVirtualMachineItemCloud::isItemSaved() const
 {
+    return false;
+}
+
+bool UIVirtualMachineItemCloud::isItemPoweredOff() const
+{
     return    accessible()
-           && machineState() == KMachineState_Saved;
-}
-
-bool UIVirtualMachineItemCloud::isItemPoweredOff() const
-{
-    return    accessible()
-           && (   machineState() == KMachineState_PoweredOff
-               || machineState() == KMachineState_Saved
-               || machineState() == KMachineState_Teleported
-               || machineState() == KMachineState_Aborted);
+           && (   machineState() == KCloudMachineState_Stopped
+               || machineState() == KCloudMachineState_Terminated);
 }
 
@@ -205,7 +204,5 @@
 {
     return    accessible()
-           && (   machineState() == KMachineState_Running
-               || machineState() == KMachineState_Teleporting
-               || machineState() == KMachineState_LiveSnapshotting);
+           && machineState() == KCloudMachineState_Running;
 }
 
@@ -217,13 +214,10 @@
 bool UIVirtualMachineItemCloud::isItemPaused() const
 {
-    return    accessible()
-           && (   machineState() == KMachineState_Paused
-               || machineState() == KMachineState_TeleportingPausedVM);
+    return false;
 }
 
 bool UIVirtualMachineItemCloud::isItemStuck() const
 {
-    return    accessible()
-           && machineState() == KMachineState_Stuck;
+    return false;
 }
 
@@ -309,2 +303,15 @@
     emit sigStateChange();
 }
+
+/* static */
+KCloudMachineState UIVirtualMachineItemCloud::toCloudMachineState(KMachineState enmState)
+{
+    switch (enmState)
+    {
+        case KMachineState_Starting:   return KCloudMachineState_Starting;
+        case KMachineState_Running:    return KCloudMachineState_Running;
+        case KMachineState_Stopping:   return KCloudMachineState_Stopping;
+        case KMachineState_PoweredOff: return KCloudMachineState_Stopped;
+        default:                       return KCloudMachineState_Stopped;
+    }
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.h	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.h	(revision 84189)
@@ -59,4 +59,7 @@
     /** @name Data attributes.
       * @{ */
+        /** Returns cached machine state. */
+        KCloudMachineState machineState() const { return m_enmMachineState; }
+
         /** Defines fake cloud item @a enmState. */
         void setFakeCloudItemState(UIFakeCloudVirtualMachineItemState enmState);
@@ -122,4 +125,7 @@
 private:
 
+    /** Temporary! Converts state from KMachineState to KCloudMachineState. */
+    static KCloudMachineState toCloudMachineState(KMachineState enmState);
+
     /** @name Arguments.
       * @{ */
@@ -130,4 +136,7 @@
     /** @name Data attributes.
       * @{ */
+        /** Holds cached machine state. */
+        KCloudMachineState  m_enmMachineState;
+
         /** Holds fake cloud item state. */
         UIFakeCloudVirtualMachineItemState  m_enmFakeCloudItemState;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemLocal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemLocal.cpp	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemLocal.cpp	(revision 84189)
@@ -43,4 +43,5 @@
     , m_comMachine(comMachine)
     , m_cSnaphot(0)
+    , m_enmMachineState(KMachineState_Null)
     , m_enmSessionState(KSessionState_Null)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemLocal.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemLocal.h	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemLocal.h	(revision 84189)
@@ -67,4 +67,6 @@
     /** @name State attributes.
       * @{ */
+        /** Returns cached machine state. */
+        KMachineState machineState() const { return m_enmMachineState; }
         /** Returns cached session state. */
         KSessionState sessionState() const { return m_enmSessionState; }
@@ -148,4 +150,6 @@
     /** @name State attributes.
       * @{ */
+        /** Holds cached machine state. */
+        KMachineState  m_enmMachineState;
         /** Holds cached session state. */
         KSessionState  m_enmSessionState;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp	(revision 84188)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp	(revision 84189)
@@ -97,5 +97,6 @@
 
     /* Acquire local machine state: */
-    const KMachineState enmState = cache()->machineState();
+    AssertPtrReturn(cache()->toLocal(), true);
+    const KMachineState enmState = cache()->toLocal()->machineState();
     return    enmState != KMachineState_PoweredOff
            && enmState != KMachineState_Saved
