Make basechain a class variable in stead of initializing it in __init__. That way it's more easily overridden.
diff --git a/Tools/bgen/bgen/bgenObjectDefinition.py b/Tools/bgen/bgen/bgenObjectDefinition.py
index b6f33fe..e6db9cd 100644
--- a/Tools/bgen/bgen/bgenObjectDefinition.py
+++ b/Tools/bgen/bgen/bgenObjectDefinition.py
@@ -3,6 +3,7 @@
 
 class ObjectDefinition(GeneratorGroup):
 	"Spit out code that together defines a new Python object type"
+	basechain = "NULL"
 
 	def __init__(self, name, prefix, itselftype):
 		"""ObjectDefinition constructor.  May be extended, but do not override.
@@ -21,7 +22,6 @@
 		self.typename = name + '_Type'
 		self.argref = ""	# set to "*" if arg to <type>_New should be pointer
 		self.static = "static " # set to "" to make <type>_New and <type>_Convert public
-		self.basechain = "NULL" # set to &<basetype>_chain to chain methods
 
 	def add(self, g, dupcheck=0):
 		g.setselftype(self.objecttype, self.itselftype)