diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py
index ad3ebcb..b47b7bd 100644
--- a/Lib/dumbdbm.py
+++ b/Lib/dumbdbm.py
@@ -200,7 +200,11 @@
         self._commit()
 
     def keys(self):
-        return self._index.keys()
+        return [key.encode("latin-1") for key in self._index.keys()]
+
+    def items(self):
+        return [(key.encode("latin-1"), self[key.encode("latin-1")])
+                for key in self._index.keys()]
 
     def __contains__(self, key):
         key = key.decode("latin-1")
diff --git a/Lib/test/test_dumbdbm.py b/Lib/test/test_dumbdbm.py
index f327a5a..44bb369 100644
--- a/Lib/test/test_dumbdbm.py
+++ b/Lib/test/test_dumbdbm.py
@@ -102,7 +102,7 @@
         f[b'1'] = b'hello2'
         f.close()
         f = dumbdbm.open(_fname)
-        self.assertEqual(f['1'], b'hello2')
+        self.assertEqual(f[b'1'], b'hello2')
         f.close()
 
     def test_line_endings(self):
@@ -157,11 +157,11 @@
                     v = random.choice((b'a', b'b', b'c')) * random.randrange(10000)
                     d[k] = v
                     f[k.encode("ascii")] = v
-                    self.assertEqual(f[k], v)
+                    self.assertEqual(f[k.encode("ascii")], v)
             f.close()
 
             f = dumbdbm.open(_fname)
-            expected = sorted(d.items())
+            expected = sorted((k.encode("latin-1"), v) for k, v in d.items())
             got = sorted(f.items())
             self.assertEqual(expected, got)
             f.close()
