diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py
index 1c9b572..7724ac6 100644
--- a/Lib/dumbdbm.py
+++ b/Lib/dumbdbm.py
@@ -202,7 +202,7 @@
         return key in self._index
 
     def iterkeys(self):
-        return self._index.keys()
+        return iter(self._index.keys())
     __iter__ = iterkeys
 
     def __len__(self):
diff --git a/Lib/test/test_dumbdbm.py b/Lib/test/test_dumbdbm.py
index 041fac1..ba94d98 100644
--- a/Lib/test/test_dumbdbm.py
+++ b/Lib/test/test_dumbdbm.py
@@ -32,7 +32,7 @@
 
     def test_dumbdbm_creation(self):
         f = dumbdbm.open(_fname, 'c')
-        self.assertEqual(f.keys(), [])
+        self.assertEqual(list(f.keys()), [])
         for key in self._dict:
             f[key] = self._dict[key]
         self.read_helper(f)
@@ -128,10 +128,8 @@
         f.close()
 
     def keys_helper(self, f):
-        keys = f.keys()
-        keys.sort()
-        dkeys = self._dict.keys()
-        dkeys.sort()
+        keys = sorted(f.keys())
+        dkeys = sorted(self._dict.keys())
         self.assertEqual(keys, dkeys)
         return keys
 
@@ -156,10 +154,8 @@
             f.close()
 
             f = dumbdbm.open(_fname)
-            expected = d.items()
-            expected.sort()
-            got = f.items()
-            got.sort()
+            expected = sorted(d.items())
+            got = sorted(f.items())
             self.assertEqual(expected, got)
             f.close()
 
