diff --git a/Tools/bgen/bgen/bgenGenerator.py b/Tools/bgen/bgen/bgenGenerator.py
index e92097e..03e8b45 100644
--- a/Tools/bgen/bgen/bgenGenerator.py
+++ b/Tools/bgen/bgen/bgenGenerator.py
@@ -15,18 +15,27 @@
 
 class BaseFunctionGenerator:
 
-    def __init__(self, name, condition=None):
+    def __init__(self, name, condition=None, callname=None, modifiers=None):
         if DEBUG: print "<--", name
         self.name = name
-        self.callname = name
+        if callname:
+            self.callname = callname
+        else:
+            self.callname = name
         self.prefix = name
         self.objecttype = "PyObject" # Type of _self argument to function
         self.condition = condition
+        self.modifiers = modifiers
 
     def setprefix(self, prefix):
         self.prefix = prefix
 
+    def checkgenerate(self):
+        return True
+        
     def generate(self):
+        if not self.checkgenerate():
+            return
         if DEBUG: print "-->", self.name
         if self.condition:
             Output()
@@ -51,6 +60,8 @@
         OutRbrace()
 
     def reference(self, name = None):
+        if not self.checkgenerate():
+            return
         if name is None:
             name = self.name
         docstring = self.docstring()
diff --git a/Tools/bgen/bgen/bgenObjectDefinition.py b/Tools/bgen/bgen/bgenObjectDefinition.py
index a77e337..64075de 100644
--- a/Tools/bgen/bgen/bgenObjectDefinition.py
+++ b/Tools/bgen/bgen/bgenObjectDefinition.py
@@ -219,6 +219,9 @@
         Output("if (PyType_Ready(&%s) < 0) return;", self.typename)
         Output("""Py_INCREF(&%s);""", self.typename)
         Output("PyModule_AddObject(m, \"%s\", (PyObject *)&%s);", self.name, self.typename);
+        self.outputTypeObjectInitializerCompat()
+        
+    def outputTypeObjectInitializerCompat(self):
         Output("/* Backward-compatible name */")
         Output("""Py_INCREF(&%s);""", self.typename);
         Output("PyModule_AddObject(m, \"%sType\", (PyObject *)&%s);", self.name, self.typename);
diff --git a/Tools/bgen/bgen/scantools.py b/Tools/bgen/bgen/scantools.py
index 1ebf70d..777a7dc 100644
--- a/Tools/bgen/bgen/scantools.py
+++ b/Tools/bgen/bgen/scantools.py
@@ -620,11 +620,15 @@
                                 (atype, aname, amode))
         if self.greydictnames.has_key(name):
             self.specfile.write("    condition=%r,\n"%(self.greydictnames[name],))
+        self.generatemodifiers(classname, name, modifiers)
         self.specfile.write(")\n")
         self.specfile.write("%s.append(f)\n\n" % listname)
 
     def destination(self, type, name, arglist):
         return "FunctionGenerator", "functions"
+        
+    def generatemodifiers(self, classname, name, modifiers):
+        pass
 
     def blacklisted(self, type, name):
         if type in self.blacklisttypes:
