diff --git a/Directory.cxx b/Directory.cxx
index 72b4e354fb3fd4d2e88a5f8936c251b4440d767e..76c0c88d18b7385c8a06fe7cae25d09107ca7a7c 100644
--- a/Directory.cxx
+++ b/Directory.cxx
@@ -193,6 +193,15 @@ unsigned long Directory::GetNumberOfFilesInDirectory(const char* name)
 #include <sys/types.h>
 #include <dirent.h>
 
+/* There is a problem with the Portland compiler, large file
+support and glibc/Linux system headers: 
+http://www.pgroup.com/userforum/viewtopic.php?
+p=1992&sid=f16167f51964f1a68fe5041b8eb213b6
+*/
+#if defined(__PGI) && defined(__USE_FILE_OFFSET64)
+# define dirent dirent64
+#endif
+
 namespace KWSYS_NAMESPACE
 {