Treat empty dat/dir pairs as dumbdbm. Fixes #744687.
diff --git a/Lib/whichdb.py b/Lib/whichdb.py
index fed58e9..9299636 100644
--- a/Lib/whichdb.py
+++ b/Lib/whichdb.py
@@ -50,15 +50,19 @@
 
     # Check for dumbdbm next -- this has a .dir and and a .dat file
     try:
-        f = open(filename + os.extsep + "dat", "rb")
-        f.close()
+        # First check for presence of files
+        sizes = os.stat(filename + os.extsep + "dat").st_size, \
+                os.stat(filename + os.extsep + "dir").st_size
+        # dumbdbm files with no keys are empty
+        if sizes == (0, 0):
+            return "dumbdbm"
         f = open(filename + os.extsep + "dir", "rb")
         try:
             if f.read(1) in ["'", '"']:
                 return "dumbdbm"
         finally:
             f.close()
-    except IOError:
+    except (OSError, IOError):
         pass
 
     # See if the file exists, return None if not