diff --git a/Lib/compiler/ast.py b/Lib/compiler/ast.py
index 259e1c4..bc283c0 100644
--- a/Lib/compiler/ast.py
+++ b/Lib/compiler/ast.py
@@ -1337,6 +1337,6 @@
     def __repr__(self):
         return "Yield(%s)" % (repr(self.value),)
 
-for name, obj in globals().items():
+for name, obj in list(globals().items()):
     if isinstance(obj, type) and issubclass(obj, Node):
         nodes[name.lower()] = obj
diff --git a/Lib/compiler/misc.py b/Lib/compiler/misc.py
index 588c7fb..b32d0dc 100644
--- a/Lib/compiler/misc.py
+++ b/Lib/compiler/misc.py
@@ -18,7 +18,7 @@
     def add(self, elt):
         self.elts[elt] = elt
     def elements(self):
-        return self.elts.keys()
+        return list(self.elts.keys())
     def has_elt(self, elt):
         return elt in self.elts
     def remove(self, elt):
diff --git a/Lib/compiler/pyassem.py b/Lib/compiler/pyassem.py
index 551791e..cac899d 100644
--- a/Lib/compiler/pyassem.py
+++ b/Lib/compiler/pyassem.py
@@ -504,7 +504,7 @@
                          if name in cells]
         for name in self.cellvars:
             del cells[name]
-        self.cellvars = self.cellvars + cells.keys()
+        self.cellvars = self.cellvars + list(cells.keys())
         self.closure = self.cellvars + self.freevars
 
     def _lookupName(self, name, list):
@@ -573,7 +573,7 @@
 
     # similarly for other opcodes...
 
-    for name, obj in locals().items():
+    for name, obj in list(locals().items()):
         if name[:9] == "_convert_":
             opname = name[9:]
             _converters[opname] = obj
