diff --git a/Lib/compiler/ast.py b/Lib/compiler/ast.py
index dda565c..4b6fd18 100644
--- a/Lib/compiler/ast.py
+++ b/Lib/compiler/ast.py
@@ -41,7 +41,7 @@
     def asList(self):
         return tuple(asList(self.getChildren()))
     def getChildNodes(self):
-        return [n for n in self.getChildnre() if isinstance(n, Node)]
+        return [n for n in self.getChildren() if isinstance(n, Node)]
 
 class EmptyNode(Node):
     def __init__(self):
diff --git a/Tools/compiler/astgen.py b/Tools/compiler/astgen.py
index fc92993..9386bf0 100644
--- a/Tools/compiler/astgen.py
+++ b/Tools/compiler/astgen.py
@@ -172,7 +172,7 @@
     def asList(self):
         return tuple(asList(self.getChildren()))
     def getChildNodes(self):
-        return [n for n in self.getChildnre() if isinstance(n, Node)]
+        return [n for n in self.getChildren() if isinstance(n, Node)]
 
 class EmptyNode(Node):
     def __init__(self):
diff --git a/Tools/compiler/compiler/ast.py b/Tools/compiler/compiler/ast.py
index dda565c..4b6fd18 100644
--- a/Tools/compiler/compiler/ast.py
+++ b/Tools/compiler/compiler/ast.py
@@ -41,7 +41,7 @@
     def asList(self):
         return tuple(asList(self.getChildren()))
     def getChildNodes(self):
-        return [n for n in self.getChildnre() if isinstance(n, Node)]
+        return [n for n in self.getChildren() if isinstance(n, Node)]
 
 class EmptyNode(Node):
     def __init__(self):
diff --git a/Tools/compiler/compiler/astgen.py b/Tools/compiler/compiler/astgen.py
index fc92993..9386bf0 100644
--- a/Tools/compiler/compiler/astgen.py
+++ b/Tools/compiler/compiler/astgen.py
@@ -172,7 +172,7 @@
     def asList(self):
         return tuple(asList(self.getChildren()))
     def getChildNodes(self):
-        return [n for n in self.getChildnre() if isinstance(n, Node)]
+        return [n for n in self.getChildren() if isinstance(n, Node)]
 
 class EmptyNode(Node):
     def __init__(self):
