Patch 702620 by Donovan Preston: Fix AE inheritance.
diff --git a/Lib/plat-mac/aetypes.py b/Lib/plat-mac/aetypes.py
index b091a28..e62e866 100644
--- a/Lib/plat-mac/aetypes.py
+++ b/Lib/plat-mac/aetypes.py
@@ -502,11 +502,11 @@
 	# Derived classes *must* set the *class attribute* 'want' to some constant
 	# Also, dictionaries _propdict and _elemdict must be set to map property
 	# and element names to the correct classes
-	
+
+	_propdict = {}
+	_elemdict = {}
 	def __init__(self, which, fr = None):
 		SelectableItem.__init__(self, self.want, which, fr)
-		self._propdict = {}
-		self._elemdict = {}
 	
 	def __repr__(self):
 		if not self.fr:
diff --git a/Mac/scripts/gensuitemodule.py b/Mac/scripts/gensuitemodule.py
index 1cd2ef6..cd725d4 100644
--- a/Mac/scripts/gensuitemodule.py
+++ b/Mac/scripts/gensuitemodule.py
@@ -321,14 +321,15 @@
 		fp.write("from %s import *\n"%modname)
 	
 	# Generate property dicts and element dicts for all types declared in this module
-	fp.write("def getbaseclasses(v):\n")
-	fp.write("\tif hasattr(v, '_superclassnames') and not hasattr(v, '_propdict'):\n")
+	fp.write("\ndef getbaseclasses(v):\n")
+	fp.write("\tif not v._propdict:\n")
 	fp.write("\t\tv._propdict = {}\n")
 	fp.write("\t\tv._elemdict = {}\n")
-	fp.write("\t\tfor superclass in v._superclassnames:\n")
-##	fp.write("\t\t\tgetbaseclasses(superclass)\n")
-	fp.write("\t\t\tv._propdict.update(getattr(eval(superclass), '_privpropdict', {}))\n")
-	fp.write("\t\t\tv._elemdict.update(getattr(eval(superclass), '_privelemdict', {}))\n")
+	fp.write("\t\tfor superclassname in getattr(v, '_superclassnames', []):\n")
+	fp.write("\t\t\tsuperclass = eval(superclassname)\n")
+	fp.write("\t\t\tgetbaseclasses(superclass)\n")
+	fp.write("\t\t\tv._propdict.update(getattr(superclass, '_propdict', {}))\n")
+	fp.write("\t\t\tv._elemdict.update(getattr(superclass, '_elemdict', {}))\n")
 	fp.write("\t\tv._propdict.update(v._privpropdict)\n")
 	fp.write("\t\tv._elemdict.update(v._privelemdict)\n")
 	fp.write("\n")