Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPathOperations.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPathOperations.cpp	(revision 78145)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPathOperations.cpp	(revision 78146)
@@ -130,10 +130,5 @@
 /* static */ QStringList UIPathOperations::pathTrail(const QString &path)
 {
-    QStringList pathList = path.split(UIPathOperations::delimiter, QString::SkipEmptyParts);
-    if (!pathList.isEmpty() && doesPathStartWithDriveLetter(pathList[0]))
-    {
-        pathList[0] = addTrailingDelimiters(pathList[0]);
-    }
-    return pathList;
+    return path.split(UIPathOperations::delimiter, QString::SkipEmptyParts);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp	(revision 78145)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp	(revision 78146)
@@ -158,4 +158,6 @@
         return;
     m_comGuestSession = session;
+    /* To determine the path separator we need to have a valid guest session: */
+    determinePathSeparator();
     initializeFileTree();
 }
@@ -604,4 +606,13 @@
             m_driveLetterList.push_back(path);
     }
+}
+
+void UIFileManagerGuestTable::determinePathSeparator()
+{
+    if (m_comGuestSession.isNull())
+        return;
+    KPathStyle pathStyle = m_comGuestSession.GetPathStyle();
+    if (pathStyle == KPathStyle_DOS)
+        setPathSeparator(UIPathOperations::dosDelimiter);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.h	(revision 78145)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.h	(revision 78146)
@@ -66,4 +66,5 @@
     virtual void    showProperties() /* override */;
     virtual void    determineDriveLetters() /* override */;
+    virtual void    determinePathSeparator() /* override */;
     virtual void    prepareToolbar() /* override */;
     virtual void    createFileViewContextMenu(const QWidget *pWidget, const QPoint &point) /* override */;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerHostTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerHostTable.cpp	(revision 78145)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerHostTable.cpp	(revision 78146)
@@ -127,4 +127,5 @@
     prepareToolbar();
     prepareActionConnections();
+    determinePathSeparator();
     retranslateUi();
 }
@@ -448,6 +449,10 @@
         if (UIPathOperations::doesPathStartWithDriveLetter(drive[i].filePath()))
             m_driveLetterList.push_back(drive[i].filePath());
-
-    }
+    }
+}
+
+void UIFileManagerHostTable::determinePathSeparator()
+{
+    setPathSeparator(QDir::separator());
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerHostTable.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerHostTable.h	(revision 78145)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerHostTable.h	(revision 78146)
@@ -56,4 +56,5 @@
     virtual void    showProperties() /* override */;
     virtual void    determineDriveLetters() /* override */;
+    virtual void    determinePathSeparator() /* override */;
     virtual void    prepareToolbar() /* override */;
     virtual void    createFileViewContextMenu(const QWidget *pWidget, const QPoint &point) /* override */;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.cpp	(revision 78145)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.cpp	(revision 78146)
@@ -84,4 +84,5 @@
     UIFileManagerBreadCrumbs(QWidget *pParent = 0);
     void setPath(const QString &strPath);
+    void setPathSeparator(const QChar &separator);
 
 protected:
@@ -92,4 +93,5 @@
 
     QString m_strPath;
+    QChar   m_pathSeparator;
 };
 
@@ -113,4 +115,5 @@
     void setPath(const QString &strLocation);
     void reset();
+    void setPathSeparator(const QChar &separator);
 
 private slots:
@@ -119,4 +122,5 @@
     /* Makes sure that we switch to breadcrumbs widget as soon as the combo box popup is hidden. */
     void sltHandleHidePopup();
+    void sltHandlePathChange(const QString &strPath);
 
 private:
@@ -128,4 +132,5 @@
     UIFileManagerHistoryComboBox *m_pHistoryComboBox;
     QToolButton                  *m_pSwitchButton;
+    QChar                         m_pathSeparator;
 };
 
@@ -250,4 +255,5 @@
     , m_pHistoryComboBox(0)
     , m_pSwitchButton(0)
+    , m_pathSeparator('/')
 {
     prepare();
@@ -261,9 +267,11 @@
     if (m_pHistoryComboBox)
     {
-        int itemIndex = m_pHistoryComboBox->findText(strLocation,
+        QString strNativeLocation(strLocation);
+        strNativeLocation.replace('/', m_pathSeparator);
+        int itemIndex = m_pHistoryComboBox->findText(strNativeLocation,
                                                       Qt::MatchExactly | Qt::MatchCaseSensitive);
         if (itemIndex == -1)
         {
-            m_pHistoryComboBox->insertItem(m_pHistoryComboBox->count(), strLocation);
+            m_pHistoryComboBox->insertItem(m_pHistoryComboBox->count(), strNativeLocation);
             itemIndex = m_pHistoryComboBox->count() - 1;
         }
@@ -277,12 +285,19 @@
     {
         disconnect(m_pHistoryComboBox, static_cast<void(QComboBox::*)(const QString&)>(&QComboBox::currentIndexChanged),
-                   this, &UIFileManagerNavigationWidget::sigPathChanged);
+                   this, &UIFileManagerNavigationWidget::sltHandlePathChange);
         m_pHistoryComboBox->clear();
         connect(m_pHistoryComboBox, static_cast<void(QComboBox::*)(const QString&)>(&QComboBox::currentIndexChanged),
-                this, &UIFileManagerNavigationWidget::sigPathChanged);
+                this, &UIFileManagerNavigationWidget::sltHandlePathChange);
     }
 
     if (m_pBreadCrumbs)
         m_pBreadCrumbs->setPath(QString());
+}
+
+void UIFileManagerNavigationWidget::setPathSeparator(const QChar &separator)
+{
+    m_pathSeparator = separator;
+    if (m_pBreadCrumbs)
+        m_pBreadCrumbs->setPathSeparator(m_pathSeparator);
 }
 
@@ -305,9 +320,9 @@
             m_pBreadCrumbs->setIndent(0.5 * qApp->style()->pixelMetric(QStyle::PM_LayoutLeftMargin));
             connect(m_pBreadCrumbs, &UIFileManagerBreadCrumbs::linkActivated,
-                    this, &UIFileManagerNavigationWidget::sigPathChanged);
+                    this, &UIFileManagerNavigationWidget::sltHandlePathChange);
             connect(m_pHistoryComboBox, &UIFileManagerHistoryComboBox::sigHidePopup,
                     this, &UIFileManagerNavigationWidget::sltHandleHidePopup);
             connect(m_pHistoryComboBox, static_cast<void(QComboBox::*)(const QString&)>(&QComboBox::currentIndexChanged),
-                    this, &UIFileManagerNavigationWidget::sigPathChanged);
+                    this, &UIFileManagerNavigationWidget::sltHandlePathChange);
 
             m_pContainer->addWidget(m_pBreadCrumbs);
@@ -340,4 +355,11 @@
 }
 
+void UIFileManagerNavigationWidget::sltHandlePathChange(const QString &strPath)
+{
+    QString strNonNativePath(strPath);
+    strNonNativePath.replace(m_pathSeparator, '/');
+    emit sigPathChanged(strNonNativePath);
+}
+
 void UIFileManagerNavigationWidget::sltHandleSwitch()
 {
@@ -361,4 +383,5 @@
 UIFileManagerBreadCrumbs::UIFileManagerBreadCrumbs(QWidget *pParent /* = 0 */)
     :QLabel(pParent)
+    , m_pathSeparator('/')
 {
     float fFontMult = 1.2f;
@@ -407,7 +430,6 @@
     for (int i = folderList.size() - 1; i >= 0; --i)
     {
-        QString strFolder = UIPathOperations::removeTrailingDelimiters(folderList.at(i));
+        QString strFolder = UIPathOperations::removeTrailingDelimiters(folderList.at(i)).replace('/', m_pathSeparator);
         QString strWord = QString("<a href=\"%1\" style=\"color:black;text-decoration:none;\">%2</a>").arg(strPathUpto[i]).arg(strFolder);
-
         if (i < folderList.size() - 1)
         {
@@ -422,4 +444,9 @@
     }
     setText(strLabelText);
+}
+
+void UIFileManagerBreadCrumbs::setPathSeparator(const QChar &separator)
+{
+    m_pathSeparator = separator;
 }
 
@@ -669,7 +696,8 @@
     , m_pView(0)
     , m_pProxyModel(0)
+    , m_pNavigationWidget(0)
     , m_pMainLayout(0)
     , m_pWarningLabel(0)
-    , m_pNavigationWidget(0)
+    , m_pathSeparator('/')
 {
     prepareObjects();
@@ -849,5 +877,6 @@
         for (int i = 0; i < m_driveLetterList.size(); ++i)
         {
-            UICustomFileSystemItem* driveItem = new UICustomFileSystemItem(m_driveLetterList[i], startItem, KFsObjType_Directory);
+            UICustomFileSystemItem* driveItem = new UICustomFileSystemItem(UIPathOperations::removeTrailingDelimiters(m_driveLetterList[i]),
+                                                                           startItem, KFsObjType_Directory);
             driveItem->setPath(m_driveLetterList[i]);
             driveItem->setIsOpened(false);
@@ -1402,4 +1431,11 @@
 }
 
+void UIFileManagerTable::setPathSeparator(const QChar &separator)
+{
+    m_pathSeparator = separator;
+    if (m_pNavigationWidget)
+        m_pNavigationWidget->setPathSeparator(m_pathSeparator);
+}
+
 bool UIFileManagerTable::event(QEvent *pEvent)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.h	(revision 78145)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.h	(revision 78146)
@@ -209,4 +209,5 @@
      *  drive letters */
     virtual void     determineDriveLetters() = 0;
+    virtual void     determinePathSeparator() = 0;
     virtual void     prepareToolbar() = 0;
     virtual void     createFileViewContextMenu(const QWidget *pWidget, const QPoint &point) = 0;
@@ -234,4 +235,5 @@
     void             setSelectionDependentActionsEnabled(bool fIsEnabled);
     UICustomFileSystemItem*   rootItem();
+    void             setPathSeparator(const QChar &separator);
 
     QILabel                 *m_pLocationLabel;
@@ -239,4 +241,5 @@
     UIActionPool            *m_pActionPool;
     UIToolBar               *m_pToolBar;
+
     /** Stores the drive letters the file system has (for windows system). For non-windows
      *  systems this is empty and for windows system it should at least contain C:/ */
@@ -287,7 +290,9 @@
     void            markUnmarkSearchLineEdit(bool fMark);
 
-    UICustomFileSystemModel      *m_pModel;
-    UIGuestControlFileView       *m_pView;
-    UICustomFileSystemProxyModel *m_pProxyModel;
+    UICustomFileSystemModel       *m_pModel;
+    UIGuestControlFileView        *m_pView;
+    UICustomFileSystemProxyModel  *m_pProxyModel;
+    /** Contains m_pBreadCrumbsWidget and m_pLocationComboBox. */
+    UIFileManagerNavigationWidget *m_pNavigationWidget;
 
     QGridLayout     *m_pMainLayout;
@@ -296,8 +301,5 @@
     QColor           m_searchLineMarkColor;
     QILabel         *m_pWarningLabel;
-
-    /** Contains m_pBreadCrumbsWidget and m_pLocationComboBox. */
-    UIFileManagerNavigationWidget           *m_pNavigationWidget;
-    //UIFileManagerBreadCrumbs *m_pBreadCrumbsWidget;
+    QChar            m_pathSeparator;
 
     friend class     UICustomFileSystemModel;
