Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 50714)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 50715)
@@ -1239,6 +1239,7 @@
             {
                 /* Find the first KMediumState_Inaccessible item to be in charge: */
-                UIMediumItem *pInaccessibleMediumItem =
-                    searchItem(pMediumItem->treeWidget(), CheckIfSuitableByState(KMediumState_Inaccessible));
+                CheckIfSuitableByState lookForState(KMediumState_Inaccessible);
+                CheckIfSuitableByID ignoreID(pMediumItem->id());
+                UIMediumItem *pInaccessibleMediumItem = searchItem(pMediumItem->treeWidget(), lookForState, &ignoreID);
                 *pfInaccessible = !!pInaccessibleMediumItem;
             }
@@ -1798,5 +1799,5 @@
 }
 
-UIMediumItem* UIMediumManager::searchItem(QTreeWidget *pTree, const CheckIfSuitableBy &functor) const
+UIMediumItem* UIMediumManager::searchItem(QTreeWidget *pTree, const CheckIfSuitableBy &condition, CheckIfSuitableBy *pException) const
 {
     /* Make sure argument is valid: */
@@ -1805,8 +1806,8 @@
 
     /* Return wrapper: */
-    return searchItem(pTree->invisibleRootItem(), functor);
-}
-
-UIMediumItem* UIMediumManager::searchItem(QTreeWidgetItem *pParentItem, const CheckIfSuitableBy &functor) const
+    return searchItem(pTree->invisibleRootItem(), condition, pException);
+}
+
+UIMediumItem* UIMediumManager::searchItem(QTreeWidgetItem *pParentItem, const CheckIfSuitableBy &condition, CheckIfSuitableBy *pException) const
 {
     /* Make sure argument is valid: */
@@ -1816,5 +1817,6 @@
     /* Verify passed item if it is of 'medium' type too: */
     if (UIMediumItem *pMediumParentItem = toMediumItem(pParentItem))
-        if (functor.isItSuitable(pMediumParentItem))
+        if (   condition.isItSuitable(pMediumParentItem)
+            && (!pException || !pException->isItSuitable(pMediumParentItem)))
             return pMediumParentItem;
 
@@ -1822,5 +1824,5 @@
     for (int iChildIndex = 0; iChildIndex < pParentItem->childCount(); ++iChildIndex)
         if (UIMediumItem *pMediumChildItem = toMediumItem(pParentItem->child(iChildIndex)))
-            if (UIMediumItem *pRequiredMediumChildItem = searchItem(pMediumChildItem, functor))
+            if (UIMediumItem *pRequiredMediumChildItem = searchItem(pMediumChildItem, condition, pException))
                 return pRequiredMediumChildItem;
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h	(revision 50714)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h	(revision 50715)
@@ -189,6 +189,6 @@
     void setCurrentItem(QTreeWidget *pTreeWidget, QTreeWidgetItem *pItem);
 
-    UIMediumItem* searchItem(QTreeWidget *pTree, const CheckIfSuitableBy &functor) const;
-    UIMediumItem* searchItem(QTreeWidgetItem *pParentItem, const CheckIfSuitableBy &functor) const;
+    UIMediumItem* searchItem(QTreeWidget *pTree, const CheckIfSuitableBy &condition, CheckIfSuitableBy *pException = 0) const;
+    UIMediumItem* searchItem(QTreeWidgetItem *pParentItem, const CheckIfSuitableBy &condition, CheckIfSuitableBy *pException = 0) const;
     UIMediumItem* createHardDiskItem(QTreeWidget *pTree, const UIMedium &medium) const;
 
