Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp	(revision 55982)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp	(revision 55983)
@@ -175,5 +175,5 @@
     {
         /* Refresh medium ID: */
-        m_strId = m_medium.GetId();
+        m_strId = normalizedID(m_medium.GetId());
         /* Refresh root medium ID: */
         m_strRootId = m_strId;
@@ -231,5 +231,5 @@
             CMedium parentMedium = m_medium.GetParent();
             if (!parentMedium.isNull())
-                m_strParentId = parentMedium.GetId();
+                m_strParentId = normalizedID(parentMedium.GetId());
 
             /* Only for created and accessible mediums: */
@@ -239,5 +239,5 @@
                 while (!parentMedium.isNull())
                 {
-                    m_strRootId = parentMedium.GetId();
+                    m_strRootId = normalizedID(parentMedium.GetId());
                     parentMedium = parentMedium.GetParent();
                 }
@@ -396,5 +396,5 @@
         CMedium parentMedium = m_medium.GetParent();
         if (!parentMedium.isNull())
-            m_strParentId = parentMedium.GetId();
+            m_strParentId = normalizedID(parentMedium.GetId());
     }
 }
@@ -529,4 +529,13 @@
 
 /* static */
+QString UIMedium::normalizedID(const QString &strID)
+{
+    AssertMsgReturn(QUuid(strID).toString().remove('{').remove('}') == strID,
+                    ("CMedium UUID is not valid: '%s'\n", strID.toAscii().constData()),
+                    nullID());
+    return strID;
+}
+
+/* static */
 bool UIMedium::isMediumAttachedToHiddenMachinesOnly(const UIMedium &medium)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h	(revision 55982)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h	(revision 55983)
@@ -121,6 +121,11 @@
     const CMedium& medium() const { return m_medium; }
 
-    /** Returns @c true if CMedium wrapped by this UIMedium object is a NULL object. */
-    bool isNull() const { return m_medium.isNull(); }
+    /** Returns @c true if CMedium wrapped by this UIMedium object has ID == #nullID().
+      * @note   Also make sure wrapped CMedium is NULL object if his ID == #nullID(). */
+    bool isNull() const
+    {
+        AssertReturn(m_strId != nullID() || m_medium.isNull(), true);
+        return m_strId == nullID();
+    }
 
     /** Returns the medium state.
@@ -285,4 +290,7 @@
     static QString nullID();
 
+    /** Returns passed @a strID if it's valid or #nullID() overwise. */
+    static QString normalizedID(const QString &strID);
+
     /** Determines if passed @a medium is attached to hidden machines only. */
     static bool isMediumAttachedToHiddenMachinesOnly(const UIMedium &medium);
