[Bug #441527] Fixes for preprocessor support, contributed by Tarn
    Weisner Burton
diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
index 9ecfb6d..91e7d5e 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -99,12 +99,13 @@
         if extra_preargs:
             pp_args[:0] = extra_preargs
         if extra_postargs:
-            extra_postargs.extend(extra_postargs)
+            pp_args.extend(extra_postargs)
 
-        # We need to preprocess: either we're being forced to, or the
-        # source file is newer than the target (or the target doesn't
+        # We need to preprocess: either we're being forced to, or we're
+	# generating output to stdout, or there's a target output file and 
+	# the source file is newer than the target (or the target doesn't
         # exist).
-        if self.force or (output_file and newer(source, output_file)):
+        if self.force or output_file is None or newer(source, output_file)):
             if output_file:
                 self.mkpath(os.path.dirname(output_file))
             try: