Index: src/orca/default.py
===================================================================
--- src/orca/default.py	(revision 4468)
+++ src/orca/default.py	(working copy)
@@ -6771,6 +6771,7 @@
         Returns: a list of all the child nodes
         """
 
+        start = time.time()
         try:
             table = obj.parent.queryTable()
         except:
@@ -6780,6 +6781,22 @@
                 return []
 
         nodes = []
+
+        # First see if this accessible implements RELATION_NODE_PARENT_OF.
+        # If it does, the full target list are the nodes. If it doesn't
+        # we'll do an old-school, row-by-row search for child nodes.
+        #
+        relations = obj.getRelationSet()
+        for relation in relations:
+            if relation.getRelationType() == pyatspi.RELATION_NODE_PARENT_OF:
+                for target in range(relation.getNTargets()):
+                    nodes.append(target)
+                end1 = time.time()
+                print "==========================="
+                print "new way", len(nodes), end1 - start
+                return nodes
+
+        nodes = []
         index = self.getCellIndex(obj)
         row = table.getRowAtIndex(index)
         col = table.getColumnAtIndex(index)
@@ -6808,6 +6825,8 @@
             if done:
                 break
 
+        end2 = time.time()
+        print "old way", len(nodes), end2 - end1
         return nodes
 
     def getKeyBinding(self, obj):
