diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 1d5061c70..bfcd8f013 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+Fri 20 Jul 2001 09:15:00  Mark Bradshaw <bradshaw@staff.crosswalk.com>
+
+	* dir.cc (readdir): Protect FindNextFileA against INVALID_HANDLE_VALUE.
+
 Wed 18 Jul 2001 01:00:47 PM EDT  Christopher Faylor <cgf@cygnus.com>
 
 	* cygheap.cc (_cmalloc): Use correct constants for size calculation.
diff --git a/winsup/cygwin/dir.cc b/winsup/cygwin/dir.cc
index f55cbe31e..db11c8fdd 100644
--- a/winsup/cygwin/dir.cc
+++ b/winsup/cygwin/dir.cc
@@ -159,6 +159,10 @@ readdir (DIR * dir)
 	  return res;
 	}
     }
+  else if (dir->__d_u.__d_data.__handle == INVALID_HANDLE_VALUE)
+    {
+      return res;
+    }
   else if (!FindNextFileA (dir->__d_u.__d_data.__handle, &buf))
     {
       DWORD lasterr = GetLastError ();