Index: /trunk/src/VBox/HostServices/SharedFolders/Makefile.kmk
===================================================================
--- /trunk/src/VBox/HostServices/SharedFolders/Makefile.kmk	(revision 66090)
+++ /trunk/src/VBox/HostServices/SharedFolders/Makefile.kmk	(revision 66091)
@@ -41,4 +41,5 @@
 	vbsf.cpp \
 	vbsfpath.cpp \
+	vbsfpathabs.cpp \
 	mappings.cpp
 VBoxSharedFolders_SOURCES.win = \
Index: /trunk/src/VBox/HostServices/SharedFolders/mappings.cpp
===================================================================
--- /trunk/src/VBox/HostServices/SharedFolders/mappings.cpp	(revision 66090)
+++ /trunk/src/VBox/HostServices/SharedFolders/mappings.cpp	(revision 66091)
@@ -20,4 +20,5 @@
 
 #include "mappings.h"
+#include "vbsfpath.h"
 #include <iprt/alloc.h>
 #include <iprt/assert.h>
@@ -228,5 +229,5 @@
                likely to get into trouble with buffer sizes in vbsfPathGuestToHost. */
             char szAbsFolderName[RTPATH_MAX];
-            int rc = RTPathAbs(pszFolderName, szAbsFolderName, sizeof(szAbsFolderName));
+            int rc = vbsfPathAbs(NULL, pszFolderName, szAbsFolderName, sizeof(szAbsFolderName));
             AssertRCReturn(rc, rc);
 
Index: /trunk/src/VBox/HostServices/SharedFolders/vbsfpath.cpp
===================================================================
--- /trunk/src/VBox/HostServices/SharedFolders/vbsfpath.cpp	(revision 66090)
+++ /trunk/src/VBox/HostServices/SharedFolders/vbsfpath.cpp	(revision 66091)
@@ -598,5 +598,5 @@
 
                     /* Construct the full host path removing '.' and '..'. */
-                    rc = RTPathAbsEx(pszRoot, pchVerifiedPath, pszFullPath, cbFullPathAlloc);
+                    rc = vbsfPathAbs(pszRoot, pchVerifiedPath, pszFullPath, cbFullPathAlloc);
                     if (RT_SUCCESS(rc))
                     {
@@ -649,5 +649,5 @@
                     else
                     {
-                        LogFunc(("RTPathAbsEx %Rrc\n", rc));
+                        LogFunc(("vbsfPathAbs %Rrc\n", rc));
                     }
                 }
Index: /trunk/src/VBox/HostServices/SharedFolders/vbsfpath.h
===================================================================
--- /trunk/src/VBox/HostServices/SharedFolders/vbsfpath.h	(revision 66090)
+++ /trunk/src/VBox/HostServices/SharedFolders/vbsfpath.h	(revision 66091)
@@ -51,3 +51,17 @@
 void vbsfFreeHostPath(char *pszHostPath);
 
+/**
+ * Build the absolute path by combining an absolute pszRoot and a relative pszPath.
+ * The resulting path does not contain '.' and '..' components.
+ * Similar to RTPathAbsEx but with support for Windows extended-length paths ("\\?\" prefix).
+ * Uses RTPathAbsEx for regular paths and on non-Windows hosts.
+ *
+ * @param pszRoot The absolute prefix. It is copied to the pszAbsPath without any processing.
+ *                If NULL then the pszPath must be converted to the absolute path.
+ * @param pszPath The relative path to be appended to pszRoot. Already has correct delimiters (RTPATH_SLASH).
+ * @param pszAbsPath Where to store the resulting absolute path.
+ * @param cbAbsPath Size of pszAbsBuffer in bytes.
+ */
+int vbsfPathAbs(const char *pszRoot, const char *pszPath, char *pszAbsPath, size_t cbAbsPath);
+
 #endif /* __VBSFPATH__H */
