Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 48268)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 48269)
@@ -964,12 +964,13 @@
 {
     /* Search for corresponding UI medium: */
-    UIMedium uimedium;
-    if (!medium(cmedium, uimedium))
-    {
-        /* UI medium may be new and not in medium list, request enumeration: */
+    UIMedium uimedium = cmedium.isNull() ? UIMedium() : medium(cmedium.GetId());
+    if (!cmedium.isNull() && uimedium.isNull())
+    {
+        /* UI medium may be new and not in medium-list, request enumeration: */
         startMediumEnumeration();
 
         /* Search for corresponding UI medium again: */
-        if (!medium(cmedium, uimedium))
+        uimedium = medium(cmedium.GetId());
+        if (uimedium.isNull())
         {
             /* Medium might be deleted already, return null string: */
@@ -1800,26 +1801,4 @@
 }
 
-bool VBoxGlobal::medium(const CMedium &cmedium, UIMedium &uimedium) const
-{
-    for (VBoxMediaList::ConstIterator it = m_mediums.begin(); it != m_mediums.end(); ++it)
-    {
-        if (((*it).medium().isNull() && cmedium.isNull()) ||
-            (!(*it).medium().isNull() && !cmedium.isNull() && (*it).medium().GetId() == cmedium.GetId()))
-        {
-            uimedium = (*it);
-            return true;
-        }
-    }
-    return false;
-}
-
-UIMedium VBoxGlobal::medium(const QString &strMediumID) const
-{
-    for (VBoxMediaList::ConstIterator it = m_mediums.begin(); it != m_mediums.end(); ++it)
-        if ((*it).id() == strMediumID)
-            return *it;
-    return UIMedium();
-}
-
 /* Open some external medium using file open dialog
  * and temporary cache (enumerate) it in GUI inner mediums cache: */
@@ -1938,8 +1917,8 @@
     {
         /* Prepare vbox medium wrapper: */
-        UIMedium uimedium;
+        UIMedium uimedium = medium(cmedium.GetId());
 
         /* First of all we should test if that medium already opened: */
-        if (!vboxGlobal().medium(cmedium, uimedium))
+        if (uimedium.isNull())
         {
             /* And create new otherwise: */
@@ -2036,5 +2015,5 @@
 
     /* Make sure enumeration is not already started: */
-    if (m_pMediumEnumerationThread)
+    if (isMediumEnumerationInProgress())
         return;
 
@@ -2114,4 +2093,12 @@
 }
 
+UIMedium VBoxGlobal::medium(const QString &strMediumID) const
+{
+    for (VBoxMediaList::ConstIterator it = m_mediums.begin(); it != m_mediums.end(); ++it)
+        if ((*it).id() == strMediumID)
+            return *it;
+    return UIMedium();
+}
+
 /**
  *  Native language name of the currently installed translation.
@@ -2190,8 +2177,7 @@
     Assert (!mErrorIcon.isNull());
 
-    /* refresh media properties since they contain some translations too  */
-    for (VBoxMediaList::iterator it = m_mediums.begin();
-         it != m_mediums.end(); ++ it)
-        it->refresh();
+    /* Re-enumerate uimedium since they contain some translations too: */
+    if (mValid)
+        startMediumEnumeration();
 
 #ifdef Q_WS_X11
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 48268)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 48269)
@@ -246,16 +246,14 @@
     void updateMedium(const UIMedium &medium);
     void deleteMedium(const QString &strMediumID);
-    bool medium(const CMedium &cmedium, UIMedium &uimedium) const;
-    UIMedium medium(const QString &strMediumID) const;
+    QString openMediumWithFileOpenDialog(UIMediumType mediumType, QWidget *pParent = 0,
+                                         const QString &strDefaultFolder = QString(), bool fUseLastFolder = true);
+    QString openMedium(UIMediumType mediumType, QString strMediumLocation, QWidget *pParent = 0);
 
     /* API: Medium-enumeration stuff: */
     void startMediumEnumeration(bool fForceStart = true);
     bool agressiveCaching() const { return mAgressiveCaching; }
-    bool isMediaEnumerationStarted() const { return !!m_pMediumEnumerationThread; }
+    bool isMediumEnumerationInProgress() const { return !!m_pMediumEnumerationThread; }
+    UIMedium medium(const QString &strMediumID) const;
     const VBoxMediaList &currentMediaList() const { return m_mediums; }
-
-    QString openMediumWithFileOpenDialog(UIMediumType mediumType, QWidget *pParent = 0,
-                                         const QString &strDefaultFolder = QString(), bool fUseLastFolder = true);
-    QString openMedium(UIMediumType mediumType, QString strMediumLocation, QWidget *pParent = 0);
 
     /* various helpers */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 48268)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 48269)
@@ -332,5 +332,5 @@
     /* If the media enumeration process is not started we have to select the
      * newly added item as the current one for the case of new image was added or created */
-    if (!vboxGlobal().isMediaEnumerationStarted())
+    if (!vboxGlobal().isMediumEnumerationInProgress())
         setCurrentItem(treeWidget(medium.type()), pMediumItem);
 
@@ -680,5 +680,5 @@
 
     /* Update action availability: */
-    bool fNotInEnumeration = !vboxGlobal().isMediaEnumerationStarted();
+    bool fNotInEnumeration = !vboxGlobal().isMediumEnumerationInProgress();
     bool fActionEnabledCopy    = currentTreeWidgetType() == UIMediumType_HardDisk &&
                                  fNotInEnumeration && pMediumItem && checkMediumFor(pMediumItem, Action_Copy);
@@ -1150,5 +1150,5 @@
 {
     /* If refresh was requested and enumeration was not yet started: */
-    if (m_fRefresh && !vboxGlobal().isMediaEnumerationStarted())
+    if (m_fRefresh && !vboxGlobal().isMediumEnumerationInProgress())
     {
         /* Just start medium-enumeration: */
@@ -1172,5 +1172,5 @@
         /* Finally, emulate enumeration finish,
          * if enumeration already finished or wasn't started: */
-        if (!vboxGlobal().isMediaEnumerationStarted())
+        if (!vboxGlobal().isMediumEnumerationInProgress())
             sltHandleMediumEnumerationFinish();
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 48268)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 48269)
@@ -1962,6 +1962,5 @@
                     storageAttachmentData.m_fAttachmentNonRotational = attachment.GetNonRotational();
                     CMedium cmedium = attachment.GetMedium();
-                    UIMedium uimedium;
-                    vboxGlobal().medium(cmedium, uimedium);
+                    UIMedium uimedium = cmedium.isNull() ? UIMedium() : vboxGlobal().medium(cmedium.GetId());
                     storageAttachmentData.m_strAttachmentMediumId = uimedium.id();
                 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMediaComboBox.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMediaComboBox.cpp	(revision 48268)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/VBoxMediaComboBox.cpp	(revision 48269)
@@ -89,5 +89,5 @@
 void VBoxMediaComboBox::repopulate()
 {
-    if (!vboxGlobal().isMediaEnumerationStarted())
+    if (!vboxGlobal().isMediumEnumerationInProgress())
         vboxGlobal().startMediumEnumeration();
     else
