diff --git a/Doc/includes/minidom-example.py b/Doc/includes/minidom-example.py
index c30c4e0..88048c0 100644
--- a/Doc/includes/minidom-example.py
+++ b/Doc/includes/minidom-example.py
@@ -26,12 +26,12 @@
     return rc
 
 def handleSlideshow(slideshow):
-    print "<html>"
+    print("<html>")
     handleSlideshowTitle(slideshow.getElementsByTagName("title")[0])
     slides = slideshow.getElementsByTagName("slide")
     handleToc(slides)
     handleSlides(slides)
-    print "</html>"
+    print("</html>")
 
 def handleSlides(slides):
     for slide in slides:
@@ -42,23 +42,23 @@
     handlePoints(slide.getElementsByTagName("point"))
 
 def handleSlideshowTitle(title):
-    print "<title>%s</title>" % getText(title.childNodes)
+    print("<title>%s</title>" % getText(title.childNodes))
 
 def handleSlideTitle(title):
-    print "<h2>%s</h2>" % getText(title.childNodes)
+    print("<h2>%s</h2>" % getText(title.childNodes))
 
 def handlePoints(points):
-    print "<ul>"
+    print("<ul>")
     for point in points:
         handlePoint(point)
-    print "</ul>"
+    print("</ul>")
 
 def handlePoint(point):
-    print "<li>%s</li>" % getText(point.childNodes)
+    print("<li>%s</li>" % getText(point.childNodes))
 
 def handleToc(slides):
     for slide in slides:
         title = slide.getElementsByTagName("title")[0]
-        print "<p>%s</p>" % getText(title.childNodes)
+        print("<p>%s</p>" % getText(title.childNodes))
 
 handleSlideshow(dom)
diff --git a/Doc/tools/sphinx-build.py b/Doc/tools/sphinx-build.py
index 8f952be..f18af29 100644
--- a/Doc/tools/sphinx-build.py
+++ b/Doc/tools/sphinx-build.py
@@ -12,12 +12,12 @@
 if __name__ == '__main__':
 
     if sys.version_info[:3] < (2, 5, 1):
-        print >>sys.stderr, """\
+        print("""\
 Error: Sphinx needs to be executed with Python 2.5.1 or newer
 (If you run this from the Makefile, you can set the PYTHON variable
 to the path of an alternative interpreter executable, e.g.,
 ``make html PYTHON=python2.5``).
-"""
+""", file=sys.stderr)
         sys.exit(1)
 
     from sphinx import main
diff --git a/PC/testpy.py b/PC/testpy.py
index 78ad63c..36f9200 100644
--- a/PC/testpy.py
+++ b/PC/testpy.py
@@ -7,15 +7,15 @@
 try:
     import os
 except:
-    print """Could not import the standard "os" module.
-  Please check your PYTHONPATH environment variable."""
+    print("""Could not import the standard "os" module.
+  Please check your PYTHONPATH environment variable.""")
     sys.exit(1)
 
 try:
     import symbol
 except:
-    print """Could not import the standard "symbol" module.  If this is
-  a PC, you should add the dos_8x3 directory to your PYTHONPATH."""
+    print("""Could not import the standard "symbol" module.  If this is
+  a PC, you should add the dos_8x3 directory to your PYTHONPATH.""")
     sys.exit(1)
 
 import os
