diff --git a/src/port/dirmod.c b/src/port/dirmod.c
index 2818bfd2e95..9d73620a6ba 100644
--- a/src/port/dirmod.c
+++ b/src/port/dirmod.c
@@ -354,7 +354,8 @@ pgreadlink(const char *path, char *buf, size_t size)
 	 * If the path starts with "\??\", which it will do in most (all?) cases,
 	 * strip those out.
 	 */
-	if (r > 4 && strncmp(buf, "\\??\\", 4) == 0)
+	if (r > 4 && strncmp(buf, "\\??\\", 4) == 0 &&
+		strncmp(buf, "\\??\\Volume", 10) != 0)
 	{
 		memmove(buf, buf + 4, strlen(buf + 4) + 1);
 		r -= 4;
