Index: /trunk/include/iprt/path.h
===================================================================
--- /trunk/include/iprt/path.h	(revision 31403)
+++ /trunk/include/iprt/path.h	(revision 31404)
@@ -654,6 +654,6 @@
  * @param   pfMode      Where to store the file mode, see @ref grp_rt_fs for details.
  *
- * @remark  This is wrapper around RTPathReal() + RTPathQueryInfo()
- *          and exists to complement RTPathSetMode().
+ * @remark  This is wrapper around RTPathQueryInfoEx(RTPATH_F_FOLLOW_LINK) and
+ *          exists to complement RTPathSetMode().
  */
 RTR3DECL(int) RTPathGetMode(const char *pszPath, PRTFMODE pfMode);
Index: /trunk/src/VBox/Runtime/r3/path.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r3/path.cpp	(revision 31403)
+++ /trunk/src/VBox/Runtime/r3/path.cpp	(revision 31404)
@@ -191,16 +191,10 @@
 RTR3DECL(int) RTPathGetMode(const char *pszPath, PRTFMODE pfMode)
 {
-    AssertPtrReturn(pszPath, VERR_INVALID_POINTER);
     AssertPtrReturn(pfMode, VERR_INVALID_POINTER);
 
-    char szPathReal[RTPATH_MAX];
-    int rc = RTPathReal(pszPath, szPathReal, sizeof(szPathReal));
+    RTFSOBJINFO ObjInfo;
+    rc = RTPathQueryInfoEx(pszPath, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK);
     if (RT_SUCCESS(rc))
-    {
-        RTFSOBJINFO objInfo;
-        rc = RTPathQueryInfo(szPathReal, &objInfo, RTFSOBJATTRADD_NOTHING);
-        if (RT_SUCCESS(rc))
-            *pfMode = objInfo.Attr.fMode;
-    }
+        *pfMode = ObjInfo.Attr.fMode;
 
     return rc;
