--- ./os2/os2.c-ppre	Mon Nov 18 22:41:02 2002
+++ ./os2/os2.c	Mon Nov 25 13:05:06 2002
@@ -1287,11 +1287,18 @@ int
 os2_stat(const char *name, struct stat *st)
 {
     static int ino = SHRT_MAX;
+    STRLEN l = strlen(name);
+    int h, rc;
 
-    if (stricmp(name, "/dev/con") != 0
-     && stricmp(name, "/dev/tty") != 0)
-	return stat(name, st);
-
+    rc = stat(name, st);
+    if (rc == 0 || l <= 5 || strnicmp(name, "/dev/", 5) != 0)
+	return rc;
+
+    /* For /dev/whatever not stat()able (typical here) try harder */
+    h = open(name, O_RDONLY | O_BINARY);	/* Any other way to -e? */
+    if (h < 0)
+	return rc;
+    close(h);
     memset(st, 0, sizeof *st);
     st->st_mode = S_IFCHR|0666;
     st->st_ino = (ino-- & 0x7FFF);
