Index: /trunk/src/VBox/HostServices/SharedFolders/vbsf.cpp
===================================================================
--- /trunk/src/VBox/HostServices/SharedFolders/vbsf.cpp	(revision 6847)
+++ /trunk/src/VBox/HostServices/SharedFolders/vbsf.cpp	(revision 6848)
@@ -817,6 +817,5 @@
         }
         if (   RT_SUCCESS(rc)
-            || (SHFL_CF_ACT_OPEN_IF_EXISTS == BIT_FLAG(pParms->CreateFlags, SHFL_CF_ACT_MASK_IF_EXISTS))
-            || (SHFL_FILE_EXISTS == pParms->Result))    /* Call of RTDirCreate() avbove failed, because already existing? */
+            || (SHFL_CF_ACT_OPEN_IF_EXISTS == BIT_FLAG(pParms->CreateFlags, SHFL_CF_ACT_MASK_IF_EXISTS)))
         {
             /* Open the directory now */
@@ -1024,4 +1023,5 @@
                     pParms->CreateFlags |= SHFL_CF_DIRECTORY;
                 }
+
                 /**
                   * @todo This should be in the Windows Guest Additions, as no-one else
@@ -1056,8 +1056,13 @@
             if (RT_SUCCESS(rc))
             {
-                if (BIT_FLAG(pParms->CreateFlags, SHFL_CF_DIRECTORY))
+                if (   BIT_FLAG(pParms->CreateFlags, SHFL_CF_DIRECTORY)
+                    && RTFS_IS_DIRECTORY(info.Attr.fMode))
+                {
                     rc = vbsfOpenDir (pszFullPath, pParms);
+                }
                 else
+                {
                     rc = vbsfOpenFile (pszFullPath, pParms);
+                }
             }
         }
