Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.cpp	(revision 64478)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.cpp	(revision 64479)
@@ -397,5 +397,5 @@
     AssertPtrReturn(table(), QString());
 
-    /* Return tree whats-this: */
+    /* Return table whats-this: */
     return table()->whatsThis();
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.h	(revision 64478)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITableView.h	(revision 64479)
@@ -102,5 +102,5 @@
     virtual int childCount() const { return 0; }
     /** Returns the child item with @a iIndex. */
-    virtual QITableViewRow *childItem(int iIndex) const { Q_UNUSED(iIndex); return 0; }
+    virtual QITableViewRow *childItem(int /* iIndex */) const { return 0; }
 
     /** Makes sure current editor data committed. */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp	(revision 64478)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp	(revision 64479)
@@ -231,5 +231,45 @@
     AssertPtrReturn(tree(), 0);
     /* Make sure index is valid: */
-    AssertReturn(iIndex >= 0 && iIndex < childCount(), 0);
+    AssertReturn(iIndex >= 0, 0);
+    if (iIndex >= childCount())
+    {
+        // WORKAROUND:
+        // Normally I would assert here, but Qt5 accessibility code has
+        // a hard-coded architecture for a tree-views which we do not like
+        // but have to live with and this architecture enumerates children
+        // of all levels as children of level 0, so Qt5 can try to address
+        // our interface with index which surely out of bounds by our laws.
+        // So let's assume that's exactly such case and try to enumerate
+        // visible children like they are a part of the list, not tree.
+        // printf("Invalid index: %d\n", iIndex);
+
+        // Take into account we also have header with 'column count' indexes,
+        // so we should start enumerating tree indexes since 'column count'.
+        const int iColumnCount = tree()->model()->columnCount();
+        int iCurrentIndex = iColumnCount;
+
+        // Set iterator to root-index initially:
+        const QModelIndex root = tree()->rootIndex();
+        QModelIndex index = root;
+
+        // But if root-index has child, go deeper:
+        if (index.child(0, 0).isValid())
+            index = index.child(0, 0);
+
+        // Search for sibling with corresponding index:
+        while (index.isValid() && iCurrentIndex < iIndex)
+        {
+            ++iCurrentIndex;
+            if (iCurrentIndex % iColumnCount == 0)
+                index = tree()->indexBelow(index);
+        }
+
+        // Return what we found:
+        // if (index.isValid())
+        //     printf("Item found: [%s]\n", ((QITreeViewItem*)index.internalPointer())->text().toUtf8().constData());
+        // else
+        //     printf("Item not found\n");
+        return index.isValid() ? QAccessible::queryAccessibleInterface((QITreeViewItem*)index.internalPointer()) : 0;
+    }
 
     /* Return the child with the passed iIndex: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.cpp	(revision 64478)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.cpp	(revision 64479)
@@ -261,5 +261,5 @@
         // WORKAROUND:
         // Normally I would assert here, but Qt5 accessibility code has
-        // a hard-coded architecture for a tree-views which we do not like
+        // a hard-coded architecture for a tree-widgets which we do not like
         // but have to live with and this architecture enumerates children
         // of all levels as children of level 0, so Qt5 can try to address
@@ -269,14 +269,18 @@
         // printf("Invalid index: %d\n", iIndex);
 
+        // Take into account we also have header with 'column count' indexes,
+        // so we should start enumerating tree indexes since 'column count'.
+        const int iColumnCount = tree()->columnCount();
+        int iCurrentIndex = iColumnCount;
+
         // Do some sanity check as well, enough?
-        AssertReturn(iIndex >= tree()->columnCount(), 0);
-
-        // The enumeration step is column count:
-        int iCurrentIndex = tree()->columnCount();
+        AssertReturn(iIndex >= iColumnCount, 0);
+
+        // Search for sibling with corresponding index:
         QTreeWidgetItem *pItem = tree()->topLevelItem(0);
         while (pItem && iCurrentIndex < iIndex)
         {
             ++iCurrentIndex;
-            if (iCurrentIndex % tree()->columnCount() == 0)
+            if (iCurrentIndex % iColumnCount == 0)
                 pItem = tree()->itemBelow(pItem);
         }
@@ -284,5 +288,7 @@
         // Return what we found:
         // if (pItem)
-        //     printf("Item found: [%s]\n", pItem->defaultText().toUtf8().constData());
+        //     printf("Item found: [%s]\n", pItem->text(0).toUtf8().constData());
+        // else
+        //     printf("Item not found\n");
         return pItem ? QAccessible::queryAccessibleInterface(QITreeWidgetItem::toItem(pItem)) : 0;
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.h	(revision 64478)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.h	(revision 64479)
@@ -59,4 +59,5 @@
     /** Returns the parent tree-widget item. */
     QITreeWidgetItem *parentItem() const;
+
     /** Returns the child tree-widget item with @a iIndex. */
     QITreeWidgetItem *childItem(int iIndex) const;
