Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp	(revision 64773)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp	(revision 64774)
@@ -321,8 +321,15 @@
 QModelIndex QITreeViewItem::modelIndex() const
 {
+    /* Check whether we have proxy model set or source one otherwise: */
+    QSortFilterProxyModel *pProxyModel = qobject_cast<QSortFilterProxyModel*>(parentTree()->model());
+
+    /* Determine proxy and source root model-indexes, they can be equal: */
+    const QModelIndex rootInProxy = parentTree()->rootIndex();
+    const QModelIndex rootInSource = pProxyModel ? pProxyModel->mapToSource(rootInProxy) : rootInProxy;
+
     /* Make sure it's not root model-index: */
-    if (   parentTree()->rootIndex().internalPointer()
-        && parentTree()->rootIndex().internalPointer() == this)
-        return parentTree()->rootIndex();
+    if (   rootInSource.internalPointer()
+        && rootInSource.internalPointer() == this)
+        return rootInProxy;
 
     /* Determine our index inside parent: */
@@ -350,5 +357,5 @@
 
     /* Get parent model-index: */
-    QModelIndex parentModelIndex = parentItem() ? parentItem()->modelIndex() : parentTree()->rootIndex();
+    QModelIndex parentModelIndex = parentItem() ? parentItem()->modelIndex() : rootInProxy;
 
     /* Return model-index as child of parent model-index: */
