Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 76958)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 76959)
@@ -2642,4 +2642,5 @@
         return QString();
     windowManager().registerNewParent(pVisoCreator, pDialogParent);
+    pVisoCreator->setCurrentPath(gEDataManager->recentFolderForVISOContent());
 
     if (pVisoCreator->exec(false /* not application modal */))
@@ -2650,4 +2651,6 @@
         if (files.empty() || files[0].isEmpty())
             return QUuid();
+
+        gEDataManager->setRecentFolderForVISOContent(pVisoCreator->currentPath());
 
         /* Produce the VISO. */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp	(revision 76958)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp	(revision 76959)
@@ -79,4 +79,18 @@
 }
 
+QString UIVisoCreator::currentPath() const
+{
+    if (!m_pHostBrowser)
+        return QString();
+    return m_pHostBrowser->currentPath();
+}
+
+void UIVisoCreator::setCurrentPath(const QString &strPath)
+{
+    if (!m_pHostBrowser)
+        return;
+    m_pHostBrowser->setCurrentPath(strPath);
+}
+
 void UIVisoCreator::retranslateUi()
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h	(revision 76958)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h	(revision 76959)
@@ -59,4 +59,7 @@
     const QString &visoName() const;
     const QStringList &customOptions() const;
+    /** Returns the current path that the host browser is listing. */
+    QString currentPath() const;
+    void setCurrentPath(const QString &strPath);
 
 #ifdef VBOX_WS_MAC
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp	(revision 76958)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp	(revision 76959)
@@ -271,4 +271,20 @@
 }
 
+QString UIVisoHostBrowser::currentPath() const
+{
+    if (!m_pTreeView || !m_pTreeModel)
+        return QString();
+    QModelIndex currentTreeIndex = m_pTreeView->selectionModel()->currentIndex();
+    return QDir::fromNativeSeparators(m_pTreeModel->filePath(currentTreeIndex));
+}
+
+void UIVisoHostBrowser::setCurrentPath(const QString &strPath)
+{
+    if (strPath.isEmpty() || !m_pTreeModel)
+        return;
+    QModelIndex index = m_pTreeModel->index(strPath);
+    setTreeCurrentIndex(index);
+}
+
 void UIVisoHostBrowser::sltHandleAddAction()
 {
@@ -316,5 +332,8 @@
     else
         strCurrentTablePath = m_pTableModel->filePath(index);
-    m_pTreeView->setCurrentIndex(m_pTreeModel->index(strCurrentTablePath));
+    QModelIndex treeIndex = m_pTreeModel->index(strCurrentTablePath);
+    m_pTreeView->setCurrentIndex(treeIndex);
+    m_pTreeView->setExpanded(treeIndex, true);
+    m_pTreeView->scrollTo(treeIndex, QAbstractItemView::PositionAtCenter);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.h	(revision 76958)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.h	(revision 76959)
@@ -46,4 +46,6 @@
     ~UIVisoHostBrowser();
     virtual void showHideHiddenObjects(bool bShow) /* override */;
+    QString currentPath() const;
+    void setCurrentPath(const QString &strPath);
 
 protected:
