Put conditional S_ISDIR definition(s) into pyport.h.
diff --git a/Include/pyport.h b/Include/pyport.h
index 35d8713..e9dc812 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -150,6 +150,19 @@
 #include <stat.h>
 #endif
 
+#if defined(PYCC_VACPP)
+/* VisualAge C/C++ Failed to Define MountType Field in sys/stat.h */
+#define S_IFMT (S_IFDIR|S_IFCHR|S_IFREG)
+#endif
+
+#ifndef S_ISREG
+#define S_ISREG(x) (((x) & S_IFMT) == S_IFREG)
+#endif
+
+#ifndef S_ISDIR
+#define S_ISDIR(x) (((x) & S_IFMT) == S_IFDIR)
+#endif
+
 
 #ifdef __cplusplus
 /* Move this down here since some C++ #include's don't like to be included
diff --git a/Modules/getpath.c b/Modules/getpath.c
index 2fd8f75..76bc320 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -5,7 +5,6 @@
 #include "osdefs.h"
 
 #include <sys/types.h>
-#include <sys/stat.h>
 #include <string.h>
 
 #if HAVE_UNISTD_H
@@ -138,14 +137,6 @@
 }
 
 
-#ifndef S_ISREG
-#define S_ISREG(x) (((x) & S_IFMT) == S_IFREG)
-#endif
-
-#ifndef S_ISDIR
-#define S_ISDIR(x) (((x) & S_IFMT) == S_IFDIR)
-#endif
-
 static int
 isfile(char *filename)		/* Is file, not directory */
 {
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 8f5a932..fa68162 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -592,7 +592,7 @@
 	exists = 0;
 	/* Test for existence or directory. */
 	if (!stat(filename, &s)) {
-		if ((s.st_mode & S_IFMT) == S_IFDIR)
+		if (S_ISDIR(s.st_mode))
 			errno = EISDIR;
 		else
 			exists = 1;
diff --git a/Python/import.c b/Python/import.c
index 8e08164..c5234ac 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -28,10 +28,6 @@
 #define S_IFMT (S_IFDIR|S_IFCHR|S_IFREG)
 #endif
 
-#ifndef S_ISDIR
-#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
-#endif
-
 extern time_t PyOS_GetLastModificationTime(char *, FILE *);
 						/* In getmtime.c */