0.6.8 release
diff --git a/diskio-unix.cc b/diskio-unix.cc
index 7d24301..b20f161 100644
--- a/diskio-unix.cc
+++ b/diskio-unix.cc
@@ -39,6 +39,7 @@
 // work.
 int DiskIO::OpenForRead(void) {
    int shouldOpen = 1;
+   struct stat64 st;
 
    if (isOpen) { // file is already open
       if (openForWrite) {
@@ -61,8 +62,22 @@
          isOpen = 0;
          openForWrite = 0;
       } else {
-         isOpen = 1;
+         isOpen = 0;
          openForWrite = 0;
+         if (fstat64(fd, &st) == 0) {
+            if (S_ISDIR(st.st_mode))
+               cerr << "The specified path is a directory!\n";
+#ifndef __FreeBSD__
+            else if (S_ISCHR(st.st_mode))
+               cerr << "The specified path is a character device!\n";
+#endif
+            else if (S_ISFIFO(st.st_mode))
+               cerr << "The specified path is a FIFO!\n";
+            else if (S_ISSOCK(st.st_mode))
+               cerr << "The specified path is a socket!\n";
+            else
+               isOpen = 1;
+         } // if (fstat64()...)
       } // if/else
    } // if