diff --git a/Lib/test/test_bsddb185.py b/Lib/test/test_bsddb185.py
new file mode 100644
index 0000000..48a0764
--- /dev/null
+++ b/Lib/test/test_bsddb185.py
@@ -0,0 +1,40 @@
+
+from test.test_support import verbose, run_unittest, findfile
+import unittest
+import bsddb185
+import anydbm
+import whichdb
+import os
+import tempfile
+
+class Bsddb185Tests(unittest.TestCase):
+    def test_open_existing_hash(self):
+        "verify we can open a file known to be a hash v2 file"
+        # do we need to worry about big vs little endian?
+        db = bsddb185.hashopen(findfile("185test.db"))
+        self.assertEqual(db["1"], "1")
+        db.close()
+
+    def test_whichdb(self):
+        "verify that whichdb correctly sniffs the known hash v2 file"
+        self.assertEqual(whichdb.whichdb(findfile("185test.db")), "bsddb185")
+
+    def test_anydbm_create(self):
+        "verify that anydbm.open does *not* create a bsddb185 file"
+        tmpdir = tempfile.mkdtemp()
+        try:
+            try:
+                dbfile = os.path.join(tmpdir, "foo.db")
+                anydbm.open(dbfile, "c").close()
+                ftype = whichdb.whichdb(findfile("foo.db"))
+                self.assertNotEqual(ftype, "bsddb185")
+            finally:
+                os.unlink(dbfile)
+        finally:
+            os.rmdir(tmpdir)
+
+def test_main():
+    run_unittest(Bsddb185Tests)
+
+if __name__ == "__main__":
+    test_main()
