diff -r 0daabcdc0340 compile.py
--- a/compile.py	Tue Nov 10 10:39:47 2009 -0800
+++ b/compile.py	Sat Mar 12 16:38:59 2011 -0800
@@ -134,12 +134,12 @@
             if self.template_type_stack[-1] == 'xml':
                 return_accumulation = deepcopy(self.return_xml)
                 # trim __xml_template__
-                function_name_node[1] = function_name_node[1][:-16] 
+                function_name_node[1] = function_name_node[1][:-16]
             else:
                 assert self.template_type_stack[-1] == 'str'
                 return_accumulation = deepcopy(self.return_str)
-                # trim __str_template__                
-                function_name_node[1] = function_name_node[1][:-16] 
+                # trim __str_template__
+                function_name_node[1] = function_name_node[1][:-16]
             func_suite.insert(-1, return_accumulation)
         elif (self.template_type_stack[-1] == 'xml' and
             node[0] == symbol.power and
@@ -151,8 +151,8 @@
             # xml_power looks like
             # [power
             #     [atom [STRING "_qpy_xml" 1]
-            #     [trailer 
-            #         LPAR ... 
+            #     [trailer
+            #         LPAR ...
             #         [arglist ... [power [atom [STRING "X"]]]]
             #         RPAR]]]
             argument = get_argument(xml_power)
@@ -210,7 +210,10 @@
     output_name = splitext(source_name)[0] + ".pyc"
     builtins_compile = builtins.compile
     try:
-        def qpycompile(source, source_name, extra='exec'):
+        # added the do-nothing kwarg ``optimize`` to avoid missing keyword
+        # argument complaints caused by other callers of builtins.compile.
+        # -1 supplied as default value per conventions in Python lib modules.
+        def qpycompile(source, source_name, extra='exec', optimize=-1):
             assert extra == 'exec'
             return get_code(source, source_name)
         builtins.compile = qpycompile
