Clear errno before calling opendir() and readdir().
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 39765b2..a0a8d9a 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1845,6 +1845,7 @@
 	struct dirent *ep;
 	int arg_is_unicode = 1;
 
+	errno = 0;
 	if (!PyArg_ParseTuple(args, "U:listdir", &v)) {
 		arg_is_unicode = 0;
 		PyErr_Clear();