Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.cpp	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.cpp	(revision 92733)
@@ -218,4 +218,6 @@
         if (m_pGuestTablesContainer)
         {
+            m_pGuestTablesContainer->setTabPosition(QTabWidget::East);
+
             m_pGuestTablesContainer->setTabBarAutoHide(true);
             m_pFileTableSplitter->addWidget(m_pGuestTablesContainer);
@@ -349,7 +351,7 @@
 }
 
-void UIFileManager::sltReceieveLogOutput(QString strOutput, FileManagerLogType eLogType)
-{
-    appendLog(strOutput, eLogType);
+void UIFileManager::sltReceieveLogOutput(QString strOutput, const QString &strMachineName, FileManagerLogType eLogType)
+{
+    appendLog(strOutput, strMachineName, eLogType);
 }
 
@@ -598,9 +600,9 @@
 }
 
-void UIFileManager::appendLog(const QString &strLog, FileManagerLogType eLogType)
+void UIFileManager::appendLog(const QString &strLog, const QString &strMachineName, FileManagerLogType eLogType)
 {
     if (!m_pLogPanel)
         return;
-    m_pLogPanel->appendLog(strLog, eLogType);
+    m_pLogPanel->appendLog(strLog, strMachineName, eLogType);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.h	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.h	(revision 92733)
@@ -107,5 +107,5 @@
 private slots:
 
-    void sltReceieveLogOutput(QString strOutput, FileManagerLogType eLogType);
+    void sltReceieveLogOutput(QString strOutput, const QString &strMachineName, FileManagerLogType eLogType);
     void sltCopyGuestToHost();
     void sltCopyHostToGuest();
@@ -146,5 +146,5 @@
     template<typename T>
     QStringList               getFsObjInfoStringList(const T &fsObjectInfo) const;
-    void                      appendLog(const QString &strLog, FileManagerLogType eLogType);
+    void                      appendLog(const QString &strLog, const QString &strMachineName, FileManagerLogType eLogType);
     void                      savePanelVisibility();
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp	(revision 92733)
@@ -25,6 +25,7 @@
 #include "QILabel.h"
 #include "UIActionPool.h"
+#include "UIConverter.h"
+#include "UICustomFileSystemModel.h"
 #include "UIErrorString.h"
-#include "UICustomFileSystemModel.h"
 #include "UIFileManager.h"
 #include "UIFileManagerGuestTable.h"
@@ -35,8 +36,10 @@
 
 /* COM includes: */
+#include "CConsole.h"
 #include "CFsObjInfo.h"
 #include "CGuestFsObjInfo.h"
 #include "CGuestDirectory.h"
 #include "CProgress.h"
+#include "CGuestSessionStateChangedEvent.h"
 
 #include <iprt/path.h>
@@ -153,4 +156,6 @@
     , m_pGuestSessionPanel(0)
 {
+    if (!m_comMachine.isNull())
+        m_strTableName = m_comMachine.GetName();
     prepareToolbar();
     prepareGuestSessionPanel();
@@ -159,11 +164,8 @@
 }
 
-void UIFileManagerGuestTable::initGuestFileTable(const CGuestSession &session)
-{
-    if (!session.isOk())
-        return;
-    if (session.GetStatus() != KGuestSessionStatus_Started)
-        return;
-    m_comGuestSession = session;
+void UIFileManagerGuestTable::initFileTable()
+{
+    if (!m_comGuestSession.isOk() || m_comGuestSession.GetStatus() != KGuestSessionStatus_Started)
+        return;
     /* To determine the path separator we need to have a valid guest session: */
     determinePathSeparator();
@@ -191,5 +193,5 @@
     if (!m_comGuestSession.isOk())
     {
-        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
+        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
         return;
     }
@@ -249,6 +251,6 @@
     if (!m_comGuestSession.isOk())
     {
-        emit sigLogOutput(QString(item->path()).append(" could not be deleted"), FileManagerLogType_Error);
-        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
+        emit sigLogOutput(QString(item->path()).append(" could not be deleted"), m_strTableName, FileManagerLogType_Error);
+        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
     }
 }
@@ -285,5 +287,5 @@
     if (!m_comGuestSession.isOk())
     {
-        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
+        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
         return;
     }
@@ -304,5 +306,5 @@
     if (!m_comGuestSession.isOk())
     {
-        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
+        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
         return false;
     }
@@ -320,9 +322,9 @@
     if (!m_comGuestSession.isOk())
     {
-        emit sigLogOutput(newDirectoryPath.append(" could not be created"), FileManagerLogType_Error);
-        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
+        emit sigLogOutput(newDirectoryPath.append(" could not be created"), m_strTableName, FileManagerLogType_Error);
+        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
         return false;
     }
-    emit sigLogOutput(newDirectoryPath.append(" has been created"), FileManagerLogType_Info);
+    emit sigLogOutput(newDirectoryPath.append(" has been created"), m_strTableName, FileManagerLogType_Info);
     return true;
 }
@@ -342,10 +344,10 @@
     if (strDestinationPath.isEmpty())
     {
-        emit sigLogOutput("No destination for copy operation", FileManagerLogType_Error);
+        emit sigLogOutput("No destination for copy operation", m_strTableName, FileManagerLogType_Error);
         return;
     }
     if (hostSourcePathList.empty())
     {
-        emit sigLogOutput("No source for copy operation", FileManagerLogType_Error);
+        emit sigLogOutput("No source for copy operation", m_strTableName, FileManagerLogType_Error);
         return;
     }
@@ -366,5 +368,5 @@
         else
             emit sigLogOutput(QString("Querying information for host item \"%s\" failed with %Rrc").arg(strSource.toStdString().c_str(), vrc),
-                              FileManagerLogType_Error);
+                              m_strTableName, FileManagerLogType_Error);
     }
 
@@ -392,10 +394,10 @@
     if (hostDestinationPath.isEmpty())
     {
-        emit sigLogOutput("No destination for copy operation", FileManagerLogType_Error);
+        emit sigLogOutput("No destination for copy operation", m_strTableName, FileManagerLogType_Error);
         return;
     }
     if (sourcePaths.empty())
     {
-        emit sigLogOutput("No source for copy operation", FileManagerLogType_Error);
+        emit sigLogOutput("No source for copy operation", m_strTableName, FileManagerLogType_Error);
         return;
     }
@@ -410,5 +412,5 @@
         if (!m_comGuestSession.isOk())
         {
-            emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
+            emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
             return;
         }
@@ -469,5 +471,5 @@
         if (!m_comGuestSession.isOk())
         {
-            emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
+            emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
             return QString();
         }
@@ -562,5 +564,5 @@
         if (!m_comGuestSession.isOk())
         {
-            emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
+            emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
             continue;
         }
@@ -768,5 +770,5 @@
     if (!m_comGuestSession.isOk())
     {
-        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
+        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
         return false;
     }
@@ -823,186 +825,200 @@
 }
 
+bool UIFileManagerGuestTable::openSession(const QString &strUserName, const QString &strPassword)
+{
+    if (m_comMachine.isNull())
+    {
+        emit sigLogOutput("Invalid machine reference", m_strTableName, FileManagerLogType_Error);
+        return false;
+    }
+    m_comSession = uiCommon().openSession(m_comMachine.GetId(), KLockType_Shared);
+    if (m_comSession.isNull())
+    {
+        emit sigLogOutput("Could not open machine session", m_strTableName, FileManagerLogType_Error);
+        return false;
+    }
+
+    CConsole comConsole = m_comSession.GetConsole();
+    AssertReturn(!comConsole.isNull(), false);
+    m_comGuest = comConsole.GetGuest();
+    AssertReturn(!m_comGuest.isNull(), false);
+
+    if (!isGuestAdditionsAvailable(m_comGuest))
+    {
+        emit sigLogOutput("Could not find Guest Additions", m_strTableName, FileManagerLogType_Error);
+        postGuestSessionClosed();
+        if (m_pGuestSessionPanel)
+            m_pGuestSessionPanel->markForError(true);
+        return false;
+    }
+
+    QVector<KVBoxEventType> eventTypes;
+    eventTypes << KVBoxEventType_OnGuestSessionRegistered;
+
+    prepareListener(m_pQtGuestListener, m_comGuestListener,
+                    m_comGuest.GetEventSource(), eventTypes);
+
+    connect(m_pQtGuestListener->getWrapped(), &UIMainEventListener::sigGuestSessionUnregistered,
+            this, &UIFileManagerGuestTable::sltGuestSessionUnregistered);
+    connect(m_pQtGuestListener->getWrapped(), &UIMainEventListener::sigGuestSessionRegistered,
+            this, &UIFileManagerGuestTable::sltGuestSessionRegistered);
+
+    m_comGuestSession = m_comGuest.CreateSession(strUserName, strPassword,
+                                                 QString() /* Domain */, "File Manager Session");
+
+    if (!m_comGuestSession.isOk())
+    {
+        emit sigLogOutput(UIErrorString::formatErrorInfo(m_comGuestSession), m_strTableName, FileManagerLogType_Error);
+        cleanupGuestListener();
+        return false;
+    }
+
+    eventTypes.clear();
+    eventTypes << KVBoxEventType_OnGuestSessionStateChanged;
+
+    prepareListener(m_pQtSessionListener, m_comSessionListener,
+                    m_comGuestSession.GetEventSource(), eventTypes);
+
+    qRegisterMetaType<CGuestSessionStateChangedEvent>();
+    connect(m_pQtSessionListener->getWrapped(), &UIMainEventListener::sigGuestSessionStatedChanged,
+            this, &UIFileManagerGuestTable::sltGuestSessionStateChanged);
+
+    return true;
+}
+
+bool UIFileManagerGuestTable::isGuestAdditionsAvailable(const CGuest &guest)
+{
+    if (!guest.isOk())
+        return false;
+    CGuest guestNonConst = const_cast<CGuest&>(guest);
+    return guestNonConst.GetAdditionsStatus(guestNonConst.GetAdditionsRunLevel());
+}
+
+
+void UIFileManagerGuestTable::cleanupGuestListener()
+{
+    disconnect(m_pQtGuestListener->getWrapped(), &UIMainEventListener::sigGuestSessionUnregistered,
+               this, &UIFileManagerGuestTable::sltGuestSessionUnregistered);
+    disconnect(m_pQtGuestListener->getWrapped(), &UIMainEventListener::sigGuestSessionRegistered,
+               this, &UIFileManagerGuestTable::sltGuestSessionRegistered);
+    cleanupListener(m_pQtGuestListener, m_comGuestListener, m_comGuest.GetEventSource());
+}
+
+
+void UIFileManagerGuestTable::postGuestSessionCreated()
+{
+    if (m_pGuestSessionPanel)
+        m_pGuestSessionPanel->switchSessionCloseMode();
+    // if (m_pGuestFileTable)
+    //     m_pGuestFileTable->setEnabled(true);
+    // if (m_pVerticalToolBar)
+    //     m_pVerticalToolBar->setEnabled(true);
+}
+
+void UIFileManagerGuestTable::postGuestSessionClosed()
+{
+    if (m_pGuestSessionPanel)
+        m_pGuestSessionPanel->switchSessionCreateMode();
+    // if (m_pGuestFileTable)
+    //     m_pGuestFileTable->setEnabled(false);
+    // if (m_pVerticalToolBar)
+    //     m_pVerticalToolBar->setEnabled(false);
+}
+
+void UIFileManagerGuestTable::prepareListener(ComObjPtr<UIMainEventListenerImpl> &QtListener,
+                                              CEventListener &comEventListener,
+                                              CEventSource comEventSource, QVector<KVBoxEventType>& eventTypes)
+{
+    if (!comEventSource.isOk())
+        return;
+    /* Create event listener instance: */
+    QtListener.createObject();
+    QtListener->init(new UIMainEventListener, this);
+    comEventListener = CEventListener(QtListener);
+
+    /* Register event listener for CProgress event source: */
+    comEventSource.RegisterListener(comEventListener, eventTypes, FALSE /* active? */);
+
+    /* Register event sources in their listeners as well: */
+    QtListener->getWrapped()->registerSource(comEventSource, comEventListener);
+}
+
+void UIFileManagerGuestTable::sltGuestSessionUnregistered(CGuestSession guestSession)
+{
+    if (guestSession.isNull())
+        return;
+    if (guestSession == m_comGuestSession && !m_comGuestSession.isNull())
+    {
+        m_comGuestSession.detach();
+        postGuestSessionClosed();
+        emit sigLogOutput("Guest session unregistered", m_strTableName, FileManagerLogType_Info);
+    }
+}
+
+void UIFileManagerGuestTable::sltGuestSessionRegistered(CGuestSession guestSession)
+{
+    if (guestSession == m_comGuestSession && !m_comGuestSession.isNull())
+        emit sigLogOutput("Guest session registered", m_strTableName, FileManagerLogType_Info);
+}
+
+void UIFileManagerGuestTable::sltGuestSessionStateChanged(const CGuestSessionStateChangedEvent &cEvent)
+{
+    if (cEvent.isOk())
+    {
+        CVirtualBoxErrorInfo cErrorInfo = cEvent.GetError();
+        if (cErrorInfo.isOk() && !cErrorInfo.GetText().contains("success", Qt::CaseInsensitive))
+            emit sigLogOutput(cErrorInfo.GetText(), m_strTableName, FileManagerLogType_Error);
+    }
+    if (m_comGuestSession.isOk())
+    {
+        if (m_comGuestSession.GetStatus() == KGuestSessionStatus_Started)
+        {
+            initFileTable();
+            postGuestSessionCreated();
+        }
+        emit sigLogOutput(QString("%1: %2").arg("Guest session status has changed").arg(gpConverter->toString(m_comGuestSession.GetStatus())),
+                  m_strTableName, FileManagerLogType_Info);
+    }
+    else
+        emit sigLogOutput("Guest session is not valid", m_strTableName, FileManagerLogType_Error);
+}
+
+void UIFileManagerGuestTable::cleanupListener(ComObjPtr<UIMainEventListenerImpl> &QtListener,
+                                              CEventListener &comEventListener,
+                                              CEventSource comEventSource)
+{
+    if (!comEventSource.isOk())
+        return;
+    /* Unregister everything: */
+    QtListener->getWrapped()->unregisterSources();
+
+    /* Make sure VBoxSVC is available: */
+    if (!uiCommon().isVBoxSVCAvailable())
+        return;
+
+    /* Unregister event listener for CProgress event source: */
+    comEventSource.UnregisterListener(comEventListener);
+}
+
 /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
 /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
 /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
 #if 0
-    void initFileTable();
-void UIFileManager::initFileTable()
-{
-    if (!m_comGuestSession.isOk() || m_comGuestSession.GetStatus() != KGuestSessionStatus_Started)
-        return;
-    if (!m_pGuestFileTable)
-        return;
-    m_pGuestFileTable->initGuestFileTable(m_comGuestSession);
-}
-
-    /** @name Perform operations needed after creating/ending a guest control session
-      * @{ */
-        void postGuestSessionCreated();
-        void postGuestSessionClosed();
-    /** @} */
-
-void UIFileManager::postGuestSessionCreated()
-{
-    if (m_pGuestSessionPanel)
-        m_pGuestSessionPanel->switchSessionCloseMode();
-    if (m_pGuestFileTable)
-        m_pGuestFileTable->setEnabled(true);
-    if (m_pVerticalToolBar)
-        m_pVerticalToolBar->setEnabled(true);
-}
-
-void UIFileManager::postGuestSessionClosed()
-{
-    if (m_pGuestSessionPanel)
-        m_pGuestSessionPanel->switchSessionCreateMode();
-    if (m_pGuestFileTable)
-        m_pGuestFileTable->setEnabled(false);
-    if (m_pVerticalToolBar)
-        m_pVerticalToolBar->setEnabled(false);
-}
-
-    /** Creates a shared machine session, opens a guest session and registers event listeners. */
-    bool openSession(const QString& strUserName, const QString& strPassword);
-    void closeSession();
-
-bool UIFileManager::openSession(const QString& strUserName, const QString& strPassword)
-{
-    if (m_comMachine.isNull())
-    {
-        appendLog("Invalid machine reference", FileManagerLogType_Error);
-        return false;
-    }
-    m_comSession = uiCommon().openSession(m_comMachine.GetId(), KLockType_Shared);
-    if (m_comSession.isNull())
-    {
-        appendLog("Could not open machine session", FileManagerLogType_Error);
-        return false;
-    }
-
-    CConsole comConsole = m_comSession.GetConsole();
-    AssertReturn(!comConsole.isNull(), false);
-    m_comGuest = comConsole.GetGuest();
-    AssertReturn(!m_comGuest.isNull(), false);
-
-    if (!isGuestAdditionsAvailable(m_comGuest))
-    {
-        appendLog("Could not find Guest Additions", FileManagerLogType_Error);
-        postGuestSessionClosed();
+
+
+
+
+void UIFileManager::closeSession()
+{
+}
+
+
+void UIFileManagerGuestTable::sltCreateGuestSession(QString strUserName, QString strPassword)
+{
+    if (strUserName.isEmpty())
+    {
+        emit sigLogOutput("No user name is given", m_strTableName, FileManagerLogType_Error);
         if (m_pGuestSessionPanel)
             m_pGuestSessionPanel->markForError(true);
-        return false;
-    }
-
-    QVector<KVBoxEventType> eventTypes;
-    eventTypes << KVBoxEventType_OnGuestSessionRegistered;
-
-    prepareListener(m_pQtGuestListener, m_comGuestListener,
-                    m_comGuest.GetEventSource(), eventTypes);
-    connect(m_pQtGuestListener->getWrapped(), &UIMainEventListener::sigGuestSessionUnregistered,
-            this, &UIFileManager::sltGuestSessionUnregistered);
-
-    connect(m_pQtGuestListener->getWrapped(), &UIMainEventListener::sigGuestSessionRegistered,
-            this, &UIFileManager::sltGuestSessionRegistered);
-
-    m_comGuestSession = m_comGuest.CreateSession(strUserName, strPassword,
-                                                 QString() /* Domain */, "File Manager Session");
-
-    if (!m_comGuestSession.isOk())
-    {
-        appendLog(UIErrorString::formatErrorInfo(m_comGuestSession), FileManagerLogType_Error);
-        return false;
-    }
-
-    if (m_pGuestSessionPanel)
-        m_pGuestSessionPanel->switchSessionCloseMode();
-
-    /* Prepare guest session listener */
-    eventTypes.clear();
-    eventTypes << KVBoxEventType_OnGuestSessionStateChanged;
-
-    prepareListener(m_pQtSessionListener, m_comSessionListener,
-                    m_comGuestSession.GetEventSource(), eventTypes);
-
-    qRegisterMetaType<CGuestSessionStateChangedEvent>();
-    connect(m_pQtSessionListener->getWrapped(), &UIMainEventListener::sigGuestSessionStatedChanged,
-            this, &UIFileManager::sltGuestSessionStateChanged);
-
-    return true;
-}
-
-void UIFileManager::closeSession()
-{
-}
-
-void UIFileManager::prepareListener(ComObjPtr<UIMainEventListenerImpl> &QtListener,
-                                    CEventListener &comEventListener,
-                                    CEventSource comEventSource, QVector<KVBoxEventType>& eventTypes)
-{
-    if (!comEventSource.isOk())
-        return;
-    /* Create event listener instance: */
-    QtListener.createObject();
-    QtListener->init(new UIMainEventListener, this);
-    comEventListener = CEventListener(QtListener);
-
-    /* Register event listener for CProgress event source: */
-    comEventSource.RegisterListener(comEventListener, eventTypes, FALSE /* active? */);
-
-    /* Register event sources in their listeners as well: */
-    QtListener->getWrapped()->registerSource(comEventSource, comEventListener);
-}
-
-void UIFileManager::cleanupListener(ComObjPtr<UIMainEventListenerImpl> &QtListener,
-                                                CEventListener &comEventListener,
-                                                CEventSource comEventSource)
-{
-    if (!comEventSource.isOk())
-        return;
-    /* Unregister everything: */
-    QtListener->getWrapped()->unregisterSources();
-
-    /* Make sure VBoxSVC is available: */
-    if (!uiCommon().isVBoxSVCAvailable())
-        return;
-
-    /* Unregister event listener for CProgress event source: */
-    comEventSource.UnregisterListener(comEventListener);
-}
-
-bool UIFileManager::isGuestAdditionsAvailable(const CGuest &guest)
-{
-    if (!guest.isOk())
-        return false;
-    CGuest guestNonConst = const_cast<CGuest&>(guest);
-    return guestNonConst.GetAdditionsStatus(guestNonConst.GetAdditionsRunLevel());
-}
-
-void UIFileManager::sltGuestSessionUnregistered(CGuestSession guestSession)
-{
-    if (guestSession.isNull())
-        return;
-    if (guestSession == m_comGuestSession && !m_comGuestSession.isNull())
-    {
-        m_comGuestSession.detach();
-        postGuestSessionClosed();
-        appendLog("Guest session unregistered", FileManagerLogType_Info);
-    }
-}
-
-void UIFileManager::sltGuestSessionRegistered(CGuestSession guestSession)
-{
-    if (guestSession == m_comGuestSession && !m_comGuestSession.isNull())
-        appendLog("Guest session registered", FileManagerLogType_Info);
-}
-
-
-void UIFileManager::sltCreateGuestSession(QString strUserName, QString strPassword)
-{
-    if (strUserName.isEmpty())
-    {
-        appendLog("No user name is given", FileManagerLogType_Error);
-        if (m_pGuestSessionPanel)
-            m_pGuestSessionPanel->markForError(true);
         return;
     }
@@ -1015,5 +1031,5 @@
     if (!m_comGuestSession.isOk())
     {
-        appendLog("Guest session is not valid", FileManagerLogType_Error);
+        emit sigLogOutput("Guest session is not valid", m_strTableName, FileManagerLogType_Error);
         postGuestSessionClosed();
         return;
@@ -1026,38 +1042,12 @@
 
     m_comGuestSession.Close();
-    appendLog("Guest session is closed", FileManagerLogType_Info);
+    emit sigLogOutput("Guest session is closed", m_strTableName, FileManagerLogType_Info);
     postGuestSessionClosed();
 }
 
-void UIFileManager::sltGuestSessionStateChanged(const CGuestSessionStateChangedEvent &cEvent)
-{
-    if (cEvent.isOk())
-    {
-        CVirtualBoxErrorInfo cErrorInfo = cEvent.GetError();
-        if (cErrorInfo.isOk() && !cErrorInfo.GetText().contains("success", Qt::CaseInsensitive))
-            appendLog(cErrorInfo.GetText(), FileManagerLogType_Error);
-    }
-    if (m_comGuestSession.isOk())
-    {
-        if (m_comGuestSession.GetStatus() == KGuestSessionStatus_Started)
-        {
-            initFileTable();
-            postGuestSessionCreated();
-        }
-        appendLog(QString("%1: %2").arg("Guest session status has changed").arg(gpConverter->toString(m_comGuestSession.GetStatus())),
-                  FileManagerLogType_Info);
-    }
-    else
-        appendLog("Guest session is not valid", FileManagerLogType_Error);
-}
-
-
-
-    void sltGuestSessionUnregistered(CGuestSession guestSession);
-    void sltGuestSessionRegistered(CGuestSession guestSession);
+
+
     void sltCreateGuestSession(QString strUserName, QString strPassword);
     void sltCloseGuestSession();
-    void sltGuestSessionStateChanged(const CGuestSessionStateChangedEvent &cEvent);
-    void sltCleanupListenerAndGuest();
 
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.h	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.h	(revision 92733)
@@ -43,4 +43,5 @@
 class UICustomFileSystemItem;
 class UIFileManagerGuestSessionPanel;
+class CGuestSessionStateChangedEvent;
 
 /** This class scans the guest file system by using the VBox Guest Control API
@@ -57,5 +58,4 @@
 
     UIFileManagerGuestTable(UIActionPool *pActionPool, const CMachine &comMachine, QWidget *pParent = 0);
-    void initGuestFileTable(const CGuestSession &session);
     void copyGuestToHost(const QString& hostDestinationPath);
     void copyHostToGuest(const QStringList &hostSourcePathList,
@@ -91,4 +91,9 @@
     void sltHandleGuestSessionPanelShown();
 
+    void sltGuestSessionUnregistered(CGuestSession guestSession);
+    void sltGuestSessionRegistered(CGuestSession guestSession);
+    void sltGuestSessionStateChanged(const CGuestSessionStateChangedEvent &cEvent);
+
+
 private:
 
@@ -108,5 +113,18 @@
                          CEventListener &comEventListener,
                          CEventSource comEventSource);
+    void cleanupGuestListener();
+
     void prepareGuestSessionPanel();
+    /** Creates a shared machine session, opens a guest session and registers event listeners. */
+    bool openSession(const QString& strUserName, const QString& strPassword);
+    bool isGuestAdditionsAvailable(const CGuest &guest);
+
+    /** @name Perform operations needed after creating/ending a guest control session
+      * @{ */
+        void postGuestSessionCreated();
+        void postGuestSessionClosed();
+    /** @} */
+
+    void initFileTable();
 
     CGuest                    m_comGuest;
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerHostTable.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerHostTable.cpp	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerHostTable.cpp	(revision 92733)
@@ -265,5 +265,5 @@
 
     if (!deleteSuccess)
-        emit sigLogOutput(QString(item->path()).append(" could not be deleted"), FileManagerLogType_Error);
+        emit sigLogOutput(QString(item->path()).append(" could not be deleted"), m_strTableName, FileManagerLogType_Error);
 }
 
@@ -285,5 +285,5 @@
         }
         if (!deleteSuccess)
-            emit sigLogOutput(QString(strPath).append(" could not be deleted"), FileManagerLogType_Error);
+            emit sigLogOutput(QString(strPath).append(" could not be deleted"), m_strTableName, FileManagerLogType_Error);
     }
 }
@@ -320,5 +320,5 @@
     if (!parentDir.mkdir(directoryName))
     {
-        emit sigLogOutput(UIPathOperations::mergePaths(path, directoryName).append(" could not be created"), FileManagerLogType_Error);
+        emit sigLogOutput(UIPathOperations::mergePaths(path, directoryName).append(" could not be created"), m_strTableName, FileManagerLogType_Error);
         return false;
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerLogPanel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerLogPanel.cpp	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerLogPanel.cpp	(revision 92733)
@@ -90,5 +90,5 @@
 }
 
-void UIFileManagerLogPanel::appendLog(const QString &strLog, FileManagerLogType eLogType)
+void UIFileManagerLogPanel::appendLog(const QString &strLog, const QString &strMachineName, FileManagerLogType eLogType)
 {
     if (!m_pLogTextEdit)
@@ -99,5 +99,5 @@
         strColorTag = "<font color=\"Red\">";
     }
-    QString strColoredLog = QString("%1 %2: %3 %4").arg(strColorTag).arg(QTime::currentTime().toString("hh:mm:ss")).arg(strLog).arg("</font>");
+    QString strColoredLog = QString("%1 %2: %3 %4 %5").arg(strColorTag).arg(QTime::currentTime().toString("hh:mm:ss")).arg(strMachineName).arg(strLog).arg("</font>");
     m_pLogTextEdit->append(strColoredLog);
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerLogPanel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerLogPanel.h	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerLogPanel.h	(revision 92733)
@@ -38,5 +38,5 @@
 
     UIFileManagerLogPanel(QWidget *pParent = 0);
-    void appendLog(const QString &str, FileManagerLogType);
+    void appendLog(const QString &str, const QString &strMachineName, FileManagerLogType eLogType);
     virtual QString panelName() const /* override */;
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerOperationsPanel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerOperationsPanel.cpp	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerOperationsPanel.cpp	(revision 92733)
@@ -52,5 +52,5 @@
 
     void sigProgressComplete(QUuid progressId);
-    void sigProgressFail(QString strErrorString, FileManagerLogType eLogType);
+    void sigProgressFail(QString strErrorString, QString strSourceTableName, FileManagerLogType eLogType);
     void sigFocusIn(QWidget *pWidget);
     void sigFocusOut(QWidget *pWidget);
@@ -58,5 +58,5 @@
 public:
 
-    UIFileOperationProgressWidget(const CProgress &comProgress, QWidget *pParent = 0);
+    UIFileOperationProgressWidget(const CProgress &comProgress, const QString &strSourceTableName, QWidget *pParent = 0);
     ~UIFileOperationProgressWidget();
     bool isCompleted() const;
@@ -101,4 +101,6 @@
     QILabel                *m_pStatusLabel;
     QILabel                *m_pOperationDescriptionLabel;
+    /** Name of the table from which this operation has originated. */
+    QString                 m_strSourceTableName;
 };
 
@@ -108,5 +110,5 @@
 *********************************************************************************************************************************/
 
-UIFileOperationProgressWidget::UIFileOperationProgressWidget(const CProgress &comProgress, QWidget *pParent /* = 0 */)
+UIFileOperationProgressWidget::UIFileOperationProgressWidget(const CProgress &comProgress, const QString &strSourceTableName, QWidget *pParent /* = 0 */)
     : QIWithRetranslateUI<QFrame>(pParent)
     , m_eStatus(OperationStatus_NotStarted)
@@ -118,4 +120,5 @@
     , m_pStatusLabel(0)
     , m_pOperationDescriptionLabel(0)
+    , m_strSourceTableName(strSourceTableName)
 {
     prepare();
@@ -276,5 +279,5 @@
     if (!m_comProgress.isOk() || m_comProgress.GetResultCode() != 0)
     {
-        emit sigProgressFail(UIErrorString::formatErrorInfo(m_comProgress), FileManagerLogType_Error);
+        emit sigProgressFail(UIErrorString::formatErrorInfo(m_comProgress), m_strSourceTableName, FileManagerLogType_Error);
         m_eStatus = OperationStatus_Failed;
     }
@@ -319,10 +322,10 @@
 }
 
-void UIFileManagerOperationsPanel::addNewProgress(const CProgress &comProgress)
+void UIFileManagerOperationsPanel::addNewProgress(const CProgress &comProgress, const QString &strSourceTableName)
 {
     if (!m_pContainerLayout)
         return;
 
-    UIFileOperationProgressWidget *pOperationsWidget = new UIFileOperationProgressWidget(comProgress);
+    UIFileOperationProgressWidget *pOperationsWidget = new UIFileOperationProgressWidget(comProgress, strSourceTableName);
     if (!pOperationsWidget)
         return;
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerOperationsPanel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerOperationsPanel.h	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerOperationsPanel.h	(revision 92733)
@@ -49,5 +49,5 @@
 
     void sigFileOperationComplete(QUuid progressId);
-    void sigFileOperationFail(QString strErrorString, FileManagerLogType eLogType);
+    void sigFileOperationFail(QString strErrorString, QString strSourceTableName, FileManagerLogType eLogType);
 
 public:
@@ -55,5 +55,5 @@
     UIFileManagerOperationsPanel(QWidget *pParent = 0);
     virtual QString panelName() const /* override */;
-    void addNewProgress(const CProgress &comProgress);
+    void addNewProgress(const CProgress &comProgress, const QString &strSourceTableName);
 
 protected:
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.cpp	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.cpp	(revision 92733)
@@ -728,9 +728,4 @@
 }
 
-void UIFileManagerTable::emitLogOutput(const QString& strOutput, FileManagerLogType eLogType)
-{
-    emit sigLogOutput(strOutput, eLogType);
-}
-
 void UIFileManagerTable::prepareObjects()
 {
@@ -1208,5 +1203,5 @@
         pItem->setData(strOldName, static_cast<int>(UICustomFileSystemModelColumn_Name));
         relist();
-        sigLogOutput(QString(pItem->path()).append(" could not be renamed"), FileManagerLogType_Error);
+        emit sigLogOutput(QString(pItem->path()).append(" could not be renamed"), QString(), FileManagerLogType_Error);
     }
 }
@@ -1297,12 +1292,13 @@
     if (pRootItem)
     {
-        pRootItem->setData(UICustomFileSystemModel::tr("Name"), UICustomFileSystemModelColumn_Name);
-        pRootItem->setData(UICustomFileSystemModel::tr("Size"), UICustomFileSystemModelColumn_Size);
-        pRootItem->setData(UICustomFileSystemModel::tr("Change Time"), UICustomFileSystemModelColumn_ChangeTime);
-        pRootItem->setData(UICustomFileSystemModel::tr("Owner"), UICustomFileSystemModelColumn_Owner);
-        pRootItem->setData(UICustomFileSystemModel::tr("Permissions"), UICustomFileSystemModelColumn_Permissions);
+        pRootItem->setData(UIFileManager::tr("Name"), UICustomFileSystemModelColumn_Name);
+        pRootItem->setData(UIFileManager::tr("Size"), UICustomFileSystemModelColumn_Size);
+        pRootItem->setData(UIFileManager::tr("Change Time"), UICustomFileSystemModelColumn_ChangeTime);
+        pRootItem->setData(UIFileManager::tr("Owner"), UICustomFileSystemModelColumn_Owner);
+        pRootItem->setData(UIFileManager::tr("Permissions"), UICustomFileSystemModelColumn_Permissions);
     }
     if (m_pWarningLabel)
         m_pWarningLabel->setText(UIFileManager::tr("<p>No Guest Session found! Please use the Session Panel to start a new guest session</p>"));
+    m_strTableName = UIFileManager::tr("Host");
 }
 
@@ -1433,7 +1429,5 @@
 {
     foreach (QAction *pAction, m_selectionDependentActions)
-    {
         pAction->setEnabled(fIsEnabled);
-    }
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.h	(revision 92732)
+++ trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.h	(revision 92733)
@@ -136,5 +136,5 @@
 signals:
 
-    void sigLogOutput(QString strLog, FileManagerLogType eLogType);
+    void sigLogOutput(QString strLog, const QString &strMachineName, FileManagerLogType eLogType);
     void sigDeleteConfirmationOptionChanged();
 
@@ -145,5 +145,4 @@
     /** Deletes all the tree nodes */
     void        reset();
-    void        emitLogOutput(const QString& strOutput, FileManagerLogType eLogType);
     /** Returns the path of the rootIndex */
     QString     currentDirectoryPath() const;
@@ -252,4 +251,6 @@
      *  Currently only used by the guest side. */
     QStringList              m_copyCutBuffer;
+    /** This name is appended to the log messages which are shown in the log panel. */
+    QString          m_strTableName;
 
 private slots:
@@ -302,5 +303,4 @@
     QILabel         *m_pWarningLabel;
     QChar            m_pathSeparator;
-
     friend class     UICustomFileSystemModel;
 };
