diff --git a/twisted/scripts/tap2rpm.py b/twisted/scripts/tap2rpm.py
index 3f55840..97ed546 100755
--- a/twisted/scripts/tap2rpm.py
+++ b/twisted/scripts/tap2rpm.py
@@ -1,9 +1,10 @@
 # -*- test-case-name: twisted.scripts.test.test_tap2rpm -*-
 
-# Copyright (c) 2003-2009 Twisted Matrix Laboratories.
+# Copyright (c) 2003-2010 Twisted Matrix Laboratories.
 # See LICENSE for details.
 
 import sys, os, shutil, time, glob
+import subprocess
 
 from twisted.python import usage
 from twisted.scripts import tap2deb
@@ -242,12 +243,16 @@ def run(options=None):
               % vars())
     
     #  build rpm
-    print 'Starting build...'
-    print '=' * 70
-    sys.stdout.flush()
-    os.system('rpmbuild --define "_topdir %s" -ta %s' % ( tmp_dir, tarfile_name ))
-    print 'Done with build...'
-    print '=' * 70
+    job = subprocess.Popen([
+            "rpmbuild",
+            "--define", "_topdir %s" % (tmp_dir,),
+            "-ta", tarfile_name,
+        ], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+    stdout, _ = job.communicate()
+
+    # If there was a problem, show people what it was.
+    if job.returncode != 0:
+        print stdout
     
     #  copy the RPMs to the local directory
     rpm_path = glob.glob(os.path.join(tmp_dir, 'RPMS', 'noarch', '*'))[0]
