diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
index 0e5af8a0cf125c0405867b22b86f3a1f82a0f745..267f019122096e4d23fb0818464d4fe3a50d3836 100644
--- a/dlls/ntdll/directory.c
+++ b/dlls/ntdll/directory.c
@@ -2185,6 +2185,11 @@ static int read_directory_getattrlist( int fd, IO_STATUS_BLOCK *io, void *buffer
             }
             else io->u.Status = STATUS_NO_MORE_FILES;
         }
+        else if ((errno == ENOENT || errno == ENOTDIR) && !get_dir_case_sensitivity("."))
+        {
+            io->u.Status = STATUS_NO_MORE_FILES;
+            ret = 0;
+        }
     }
     else ret = -1;