Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 41016)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 41017)
@@ -601,4 +601,15 @@
 }
 
+void UIMessageCenter::cannotInitUserHome(const QString &strUserHome)
+{
+    message(0, Critical,
+        tr("<p>Failed to initialize COM because the VirtualBox global "
+           "configuration directory <b><nobr>%1</nobr></b> is not accessible. "
+           "Please check the permissions of this directory and of its parent "
+           "directory.</p>"
+           "<p>The application will now terminate.</p>").arg(strUserHome),
+        formatErrorInfo(COMErrorInfo()));
+}
+
 void UIMessageCenter::cannotCreateVirtualBox(const CVirtualBox &vbox)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 41016)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 41017)
@@ -181,4 +181,5 @@
 
     void cannotInitCOM(HRESULT rc);
+    void cannotInitUserHome(const QString &strUserHome);
     void cannotCreateVirtualBox(const CVirtualBox &vbox);
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 41016)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 41017)
@@ -4777,5 +4777,12 @@
     if (FAILED (rc))
     {
-        msgCenter().cannotInitCOM (rc);
+        if (rc == NS_ERROR_FILE_ACCESS_DENIED)
+        {
+            char szHome[RTPATH_MAX] = "";
+            com::GetVBoxUserHomeDirectory(szHome, sizeof(szHome));
+            msgCenter().cannotInitUserHome(QString(szHome));
+        }
+        else
+            msgCenter().cannotInitCOM(rc);
         return;
     }
Index: /trunk/src/VBox/Main/glue/initterm.cpp
===================================================================
--- /trunk/src/VBox/Main/glue/initterm.cpp	(revision 41016)
+++ /trunk/src/VBox/Main/glue/initterm.cpp	(revision 41017)
@@ -343,4 +343,6 @@
 
     int vrc = GetVBoxUserHomeDirectory(szCompReg, sizeof(szCompReg));
+    if (vrc == VERR_ACCESS_DENIED)
+        return NS_ERROR_FILE_ACCESS_DENIED;
     AssertRCReturn(vrc, NS_ERROR_FAILURE);
     strcpy(szXptiDat, szCompReg);
