convert shebang lines: python -> python3
diff --git a/Demo/cgi/cgi1.py b/Demo/cgi/cgi1.py
index 842fef2..b4154df 100755
--- a/Demo/cgi/cgi1.py
+++ b/Demo/cgi/cgi1.py
@@ -1,4 +1,4 @@
-#!/usr/local/bin/python
+#!/usr/bin/env python3
 
 """CGI test 1 - check server setup."""
 
diff --git a/Demo/cgi/cgi2.py b/Demo/cgi/cgi2.py
index 1d5822c..8aa57b3 100755
--- a/Demo/cgi/cgi2.py
+++ b/Demo/cgi/cgi2.py
@@ -1,4 +1,4 @@
-#!/usr/local/bin/python
+#!/usr/bin/env python3
 
 """CGI test 2 - basic use of cgi module."""
 
diff --git a/Demo/cgi/cgi3.py b/Demo/cgi/cgi3.py
index a3421b5..de8ef65 100755
--- a/Demo/cgi/cgi3.py
+++ b/Demo/cgi/cgi3.py
@@ -1,4 +1,4 @@
-#!/usr/local/bin/python
+#!/usr/bin/env python3
 
 """CGI test 3 (persistent data)."""
 
diff --git a/Demo/comparisons/regextest.py b/Demo/comparisons/regextest.py
index d2c534d..547ee0d 100755
--- a/Demo/comparisons/regextest.py
+++ b/Demo/comparisons/regextest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # 1)  Regular Expressions Test
 #
diff --git a/Demo/comparisons/sortingtest.py b/Demo/comparisons/sortingtest.py
index f9ed854..e826e81 100755
--- a/Demo/comparisons/sortingtest.py
+++ b/Demo/comparisons/sortingtest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # 2)  Sorting Test
 #
diff --git a/Demo/comparisons/systemtest.py b/Demo/comparisons/systemtest.py
index e3d840e..8276333 100755
--- a/Demo/comparisons/systemtest.py
+++ b/Demo/comparisons/systemtest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # 3)  System Test
 #
diff --git a/Demo/curses/life.py b/Demo/curses/life.py
index ddff8fa..06f9692 100755
--- a/Demo/curses/life.py
+++ b/Demo/curses/life.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # life.py -- A curses-based version of Conway's Game of Life.
 # Contributed by AMK
 #
diff --git a/Demo/curses/ncurses.py b/Demo/curses/ncurses.py
index 0bdc1a9..dedde29 100644
--- a/Demo/curses/ncurses.py
+++ b/Demo/curses/ncurses.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # $Id$
 #
diff --git a/Demo/curses/rain.py b/Demo/curses/rain.py
index 9d46e6e..7cabb4f 100644
--- a/Demo/curses/rain.py
+++ b/Demo/curses/rain.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # $Id$
 #
diff --git a/Demo/curses/repeat.py b/Demo/curses/repeat.py
index 93372c5..570f221 100755
--- a/Demo/curses/repeat.py
+++ b/Demo/curses/repeat.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """repeat [-i SECONDS] <shell-command>
 
diff --git a/Demo/curses/tclock.py b/Demo/curses/tclock.py
index 8058d9a..cde0a93 100644
--- a/Demo/curses/tclock.py
+++ b/Demo/curses/tclock.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # $Id$
 #
diff --git a/Demo/distutils/test2to3/maintest.py b/Demo/distutils/test2to3/maintest.py
index 72a26dd..036dd4f 100644
--- a/Demo/distutils/test2to3/maintest.py
+++ b/Demo/distutils/test2to3/maintest.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # The above line should get replaced with the path to the Python
 # interpreter; the block below should get 2to3-converted.
diff --git a/Demo/parser/test_parser.py b/Demo/parser/test_parser.py
index e4d5571..7d6db6b 100755
--- a/Demo/parser/test_parser.py
+++ b/Demo/parser/test_parser.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 #  (Force the script to use the latest build.)
 #
 #  test_parser.py
diff --git a/Demo/pdist/RCSProxy.py b/Demo/pdist/RCSProxy.py
index 7c3b24f..b0a01ad 100755
--- a/Demo/pdist/RCSProxy.py
+++ b/Demo/pdist/RCSProxy.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """RCS Proxy.
 
diff --git a/Demo/pdist/makechangelog.py b/Demo/pdist/makechangelog.py
index db66e8f..dd90657 100755
--- a/Demo/pdist/makechangelog.py
+++ b/Demo/pdist/makechangelog.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Turn a pile of RCS log output into ChangeLog file entries.
 
diff --git a/Demo/pdist/rcvs.py b/Demo/pdist/rcvs.py
index 4e2532a..ff178b7 100755
--- a/Demo/pdist/rcvs.py
+++ b/Demo/pdist/rcvs.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Remote CVS -- command line interface"""
 
diff --git a/Demo/pdist/rrcs.py b/Demo/pdist/rrcs.py
index 647ecc5..9e246b8 100755
--- a/Demo/pdist/rrcs.py
+++ b/Demo/pdist/rrcs.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 "Remote RCS -- command line interface"
 
diff --git a/Demo/pysvr/pysvr.py b/Demo/pysvr/pysvr.py
index 3e94dbe..578e99c 100755
--- a/Demo/pysvr/pysvr.py
+++ b/Demo/pysvr/pysvr.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """A multi-threaded telnet-like server that gives a Python prompt.
 
diff --git a/Demo/scripts/beer.py b/Demo/scripts/beer.py
index 8135509..56eec7b 100755
--- a/Demo/scripts/beer.py
+++ b/Demo/scripts/beer.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # By GvR, demystified after a version by Fredrik Lundh.
 
diff --git a/Demo/scripts/eqfix.py b/Demo/scripts/eqfix.py
index 47c00d3..8d0c8df 100755
--- a/Demo/scripts/eqfix.py
+++ b/Demo/scripts/eqfix.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Fix Python source files to use the new equality test operator, i.e.,
 #       if x = y: ...
diff --git a/Demo/scripts/fact.py b/Demo/scripts/fact.py
index 71fcda2..2a3bef2 100755
--- a/Demo/scripts/fact.py
+++ b/Demo/scripts/fact.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Factorize numbers.
 # The algorithm is not efficient, but easy to understand.
diff --git a/Demo/scripts/find-uname.py b/Demo/scripts/find-uname.py
index 1902423..b6ec1b6 100755
--- a/Demo/scripts/find-uname.py
+++ b/Demo/scripts/find-uname.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """
 For each argument on the command line, look for it in the set of all Unicode
diff --git a/Demo/scripts/from.py b/Demo/scripts/from.py
index 323e684..c8a9346 100755
--- a/Demo/scripts/from.py
+++ b/Demo/scripts/from.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Print From and Subject of messages in $MAIL.
 # Extension to multiple mailboxes and other bells & whistles are left
diff --git a/Demo/scripts/lpwatch.py b/Demo/scripts/lpwatch.py
index 90b3ecf..01d9fea 100755
--- a/Demo/scripts/lpwatch.py
+++ b/Demo/scripts/lpwatch.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Watch line printer queue(s).
 # Intended for BSD 4.3 lpq.
diff --git a/Demo/scripts/makedir.py b/Demo/scripts/makedir.py
index 7095868..a14e848 100755
--- a/Demo/scripts/makedir.py
+++ b/Demo/scripts/makedir.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Like mkdir, but also make intermediate directories if necessary.
 # It is not an error if the given directory already exists (as long
diff --git a/Demo/scripts/markov.py b/Demo/scripts/markov.py
index 990c972..7c08bdb 100755
--- a/Demo/scripts/markov.py
+++ b/Demo/scripts/markov.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 class Markov:
     def __init__(self, histsize, choice):
diff --git a/Demo/scripts/mboxconvert.py b/Demo/scripts/mboxconvert.py
index 2e44f06..cb3ed89 100755
--- a/Demo/scripts/mboxconvert.py
+++ b/Demo/scripts/mboxconvert.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Convert  MH directories (1 message per file) or MMDF mailboxes (4x^A
 # delimited) to unix mailbox (From ... delimited) on stdout.
diff --git a/Demo/scripts/morse.py b/Demo/scripts/morse.py
index 5aacaa1..c2f408f 100755
--- a/Demo/scripts/morse.py
+++ b/Demo/scripts/morse.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # DAH should be three DOTs.
 # Space between DOTs and DAHs should be one DOT.
diff --git a/Demo/scripts/newslist.py b/Demo/scripts/newslist.py
index 9cea1b4..b345f2ef 100755
--- a/Demo/scripts/newslist.py
+++ b/Demo/scripts/newslist.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 #######################################################################
 # Newslist  $Revision$
 #
diff --git a/Demo/scripts/pi.py b/Demo/scripts/pi.py
index 0740cd0..248f81f 100755
--- a/Demo/scripts/pi.py
+++ b/Demo/scripts/pi.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Print digits of pi forever.
 #
diff --git a/Demo/scripts/pp.py b/Demo/scripts/pp.py
index 2c948f7..87b9d8f 100755
--- a/Demo/scripts/pp.py
+++ b/Demo/scripts/pp.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Emulate some Perl command line options.
 # Usage: pp [-a] [-c] [-d] [-e scriptline] [-F fieldsep] [-n] [-p] [file] ...
diff --git a/Demo/scripts/primes.py b/Demo/scripts/primes.py
index d296f0e..c994623 100755
--- a/Demo/scripts/primes.py
+++ b/Demo/scripts/primes.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Print prime numbers in a given range
 
diff --git a/Demo/scripts/queens.py b/Demo/scripts/queens.py
index 726433c..ffd4bea 100755
--- a/Demo/scripts/queens.py
+++ b/Demo/scripts/queens.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """N queens problem.
 
diff --git a/Demo/scripts/script.py b/Demo/scripts/script.py
index b490b17..a815a35 100755
--- a/Demo/scripts/script.py
+++ b/Demo/scripts/script.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # script.py -- Make typescript of terminal session.
 # Usage:
diff --git a/Demo/scripts/unbirthday.py b/Demo/scripts/unbirthday.py
index af58f8f..b3c7d23 100755
--- a/Demo/scripts/unbirthday.py
+++ b/Demo/scripts/unbirthday.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Calculate your unbirthday count (see Alice in Wonderland).
 # This is defined as the number of days from your birth until today
diff --git a/Demo/scripts/update.py b/Demo/scripts/update.py
index d49e4b3..49c09d8 100755
--- a/Demo/scripts/update.py
+++ b/Demo/scripts/update.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Update a bunch of files according to a script.
 # The input file contains lines of the form <filename>:<lineno>:<text>,
diff --git a/Demo/sockets/echosvr.py b/Demo/sockets/echosvr.py
index 7de6391..6f7030e 100755
--- a/Demo/sockets/echosvr.py
+++ b/Demo/sockets/echosvr.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Python implementation of an 'echo' tcp server: echo all data it receives.
 #
diff --git a/Demo/sockets/finger.py b/Demo/sockets/finger.py
index e8b9ed2..4d49391 100755
--- a/Demo/sockets/finger.py
+++ b/Demo/sockets/finger.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Python interface to the Internet finger daemon.
 #
diff --git a/Demo/sockets/gopher.py b/Demo/sockets/gopher.py
index c287319..bd29ec0 100755
--- a/Demo/sockets/gopher.py
+++ b/Demo/sockets/gopher.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # A simple gopher client.
 #
diff --git a/Demo/sockets/mcast.py b/Demo/sockets/mcast.py
index b7f8556..6ce7c6d 100755
--- a/Demo/sockets/mcast.py
+++ b/Demo/sockets/mcast.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Send/receive UDP multicast packets.
 # Requires that your OS kernel supports IP multicast.
diff --git a/Demo/sockets/rpython.py b/Demo/sockets/rpython.py
index b654dc2..7dcf979 100755
--- a/Demo/sockets/rpython.py
+++ b/Demo/sockets/rpython.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Remote python client.
 # Execute Python commands remotely and send output back.
diff --git a/Demo/sockets/rpythond.py b/Demo/sockets/rpythond.py
index d745cc7..e244d6c 100755
--- a/Demo/sockets/rpythond.py
+++ b/Demo/sockets/rpythond.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Remote python server.
 # Execute Python commands remotely and send output back.
diff --git a/Demo/sockets/telnet.py b/Demo/sockets/telnet.py
index 038036ff..fb36faf 100755
--- a/Demo/sockets/telnet.py
+++ b/Demo/sockets/telnet.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Minimal interface to the Internet telnet protocol.
 #
diff --git a/Demo/sockets/throughput.py b/Demo/sockets/throughput.py
index 64244aa..5954316 100755
--- a/Demo/sockets/throughput.py
+++ b/Demo/sockets/throughput.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Test network throughput.
 #
diff --git a/Demo/sockets/udpecho.py b/Demo/sockets/udpecho.py
index 9966fd8..6983a1f 100755
--- a/Demo/sockets/udpecho.py
+++ b/Demo/sockets/udpecho.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Client and server for udp (datagram) echo.
 #
diff --git a/Demo/tkinter/guido/MimeViewer.py b/Demo/tkinter/guido/MimeViewer.py
index 11701cd..b957c85 100755
--- a/Demo/tkinter/guido/MimeViewer.py
+++ b/Demo/tkinter/guido/MimeViewer.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # View a single MIME multipart message.
 # Display each part as a box.
diff --git a/Demo/tkinter/guido/canvasevents.py b/Demo/tkinter/guido/canvasevents.py
index aeb0eb1..e5d27cc 100644
--- a/Demo/tkinter/guido/canvasevents.py
+++ b/Demo/tkinter/guido/canvasevents.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 from tkinter import *
 from Canvas import Oval, Group, CanvasText
diff --git a/Demo/tkinter/guido/dialog.py b/Demo/tkinter/guido/dialog.py
index 1832ba4..f16029c 100755
--- a/Demo/tkinter/guido/dialog.py
+++ b/Demo/tkinter/guido/dialog.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # A Python function that generates dialog boxes with a text message,
 # optional bitmap, and any number of buttons.
diff --git a/Demo/tkinter/guido/electrons.py b/Demo/tkinter/guido/electrons.py
index e3bf468..6079c04 100755
--- a/Demo/tkinter/guido/electrons.py
+++ b/Demo/tkinter/guido/electrons.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Simulate "electrons" migrating across the screen.
 # An optional bitmap file in can be in the background.
diff --git a/Demo/tkinter/guido/kill.py b/Demo/tkinter/guido/kill.py
index 36caba6..dd01a2d 100755
--- a/Demo/tkinter/guido/kill.py
+++ b/Demo/tkinter/guido/kill.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 # Tkinter interface to Linux `kill' command.
 
 from tkinter import *
diff --git a/Demo/tkinter/guido/mbox.py b/Demo/tkinter/guido/mbox.py
index 45c384e..299999c 100755
--- a/Demo/tkinter/guido/mbox.py
+++ b/Demo/tkinter/guido/mbox.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Scan MH folder, display results in window
 
diff --git a/Demo/tkinter/guido/newmenubardemo.py b/Demo/tkinter/guido/newmenubardemo.py
index 51c4e64..09ac566 100644
--- a/Demo/tkinter/guido/newmenubardemo.py
+++ b/Demo/tkinter/guido/newmenubardemo.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Play with the new Tk 8.0 toplevel menu option."""
 
diff --git a/Demo/tkinter/guido/rmt.py b/Demo/tkinter/guido/rmt.py
index 7b3f700..a3f430e 100755
--- a/Demo/tkinter/guido/rmt.py
+++ b/Demo/tkinter/guido/rmt.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # A Python program implementing rmt, an application for remotely
 # controlling other Tk applications.
diff --git a/Demo/tkinter/guido/solitaire.py b/Demo/tkinter/guido/solitaire.py
index b2a2a66..375bd03 100755
--- a/Demo/tkinter/guido/solitaire.py
+++ b/Demo/tkinter/guido/solitaire.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Solitaire game, much like the one that comes with MS Windows.
 
diff --git a/Demo/tkinter/guido/sortvisu.py b/Demo/tkinter/guido/sortvisu.py
index 0c71fc9..1e4165d 100644
--- a/Demo/tkinter/guido/sortvisu.py
+++ b/Demo/tkinter/guido/sortvisu.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Sorting algorithms visualizer using Tkinter.
 
diff --git a/Demo/tkinter/guido/svkill.py b/Demo/tkinter/guido/svkill.py
index 0dd9f95..4ed88ad 100755
--- a/Demo/tkinter/guido/svkill.py
+++ b/Demo/tkinter/guido/svkill.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Tkinter interface to SYSV `ps' and `kill' commands.
 
diff --git a/Demo/tkinter/guido/tkman.py b/Demo/tkinter/guido/tkman.py
index 52b6d03..4fc0488 100755
--- a/Demo/tkinter/guido/tkman.py
+++ b/Demo/tkinter/guido/tkman.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Tk man page browser -- currently only shows the Tcl/Tk man pages
 
diff --git a/Demo/turtle/tdemo_I_dontlike_tiltdemo.py b/Demo/turtle/tdemo_I_dontlike_tiltdemo.py
index 1d8652c..1e5c440 100644
--- a/Demo/turtle/tdemo_I_dontlike_tiltdemo.py
+++ b/Demo/turtle/tdemo_I_dontlike_tiltdemo.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
      tdemo-I_dont_like_tiltdemo.py
diff --git a/Demo/turtle/tdemo_bytedesign.py b/Demo/turtle/tdemo_bytedesign.py
index 2e2ac62..96118b3 100644
--- a/Demo/turtle/tdemo_bytedesign.py
+++ b/Demo/turtle/tdemo_bytedesign.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """      turtle-example-suite:
 
         tdemo_bytedesign.py
diff --git a/Demo/turtle/tdemo_clock.py b/Demo/turtle/tdemo_clock.py
index e186c38..a0d157b 100644
--- a/Demo/turtle/tdemo_clock.py
+++ b/Demo/turtle/tdemo_clock.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 # -*- coding: cp1252 -*-
 """       turtle-example-suite:
 
diff --git a/Demo/turtle/tdemo_forest.py b/Demo/turtle/tdemo_forest.py
index 01fa186..a837d84 100644
--- a/Demo/turtle/tdemo_forest.py
+++ b/Demo/turtle/tdemo_forest.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """     turtlegraphics-example-suite:
 
              tdemo_forest.py
diff --git a/Demo/turtle/tdemo_fractalcurves.py b/Demo/turtle/tdemo_fractalcurves.py
index 247f16c..c49f8b8 100644
--- a/Demo/turtle/tdemo_fractalcurves.py
+++ b/Demo/turtle/tdemo_fractalcurves.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """      turtle-example-suite:
 
         tdemo_fractalCurves.py
diff --git a/Demo/turtle/tdemo_lindenmayer_indian.py b/Demo/turtle/tdemo_lindenmayer_indian.py
index bda5067..3925f25 100644
--- a/Demo/turtle/tdemo_lindenmayer_indian.py
+++ b/Demo/turtle/tdemo_lindenmayer_indian.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
         xtx_lindenmayer_indian.py
diff --git a/Demo/turtle/tdemo_minimal_hanoi.py b/Demo/turtle/tdemo_minimal_hanoi.py
index a8bdca7..cfb78dc 100644
--- a/Demo/turtle/tdemo_minimal_hanoi.py
+++ b/Demo/turtle/tdemo_minimal_hanoi.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
          tdemo_minimal_hanoi.py
diff --git a/Demo/turtle/tdemo_paint.py b/Demo/turtle/tdemo_paint.py
index 337a57c..68058ab 100644
--- a/Demo/turtle/tdemo_paint.py
+++ b/Demo/turtle/tdemo_paint.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
             tdemo_paint.py
diff --git a/Demo/turtle/tdemo_peace.py b/Demo/turtle/tdemo_peace.py
index ea57069..63cf7cc 100644
--- a/Demo/turtle/tdemo_peace.py
+++ b/Demo/turtle/tdemo_peace.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
               tdemo_peace.py
diff --git a/Demo/turtle/tdemo_penrose.py b/Demo/turtle/tdemo_penrose.py
index f816f66..f73c864 100644
--- a/Demo/turtle/tdemo_penrose.py
+++ b/Demo/turtle/tdemo_penrose.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       xturtle-example-suite:
 
           xtx_kites_and_darts.py
diff --git a/Demo/turtle/tdemo_planet_and_moon.py b/Demo/turtle/tdemo_planet_and_moon.py
index 983449c..14c4bbc 100644
--- a/Demo/turtle/tdemo_planet_and_moon.py
+++ b/Demo/turtle/tdemo_planet_and_moon.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
         tdemo_planets_and_moon.py
diff --git a/Demo/turtle/tdemo_tree.py b/Demo/turtle/tdemo_tree.py
index fda653c..9c0b1f7 100644
--- a/Demo/turtle/tdemo_tree.py
+++ b/Demo/turtle/tdemo_tree.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """      turtle-example-suite:
 
              tdemo_tree.py
diff --git a/Demo/turtle/tdemo_yinyang.py b/Demo/turtle/tdemo_yinyang.py
index 6508b44..11d1f47 100644
--- a/Demo/turtle/tdemo_yinyang.py
+++ b/Demo/turtle/tdemo_yinyang.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
             tdemo_yinyang.py
diff --git a/Demo/turtle/turtleDemo.py b/Demo/turtle/turtleDemo.py
index 36bf15c..b5b99c0 100644
--- a/Demo/turtle/turtleDemo.py
+++ b/Demo/turtle/turtleDemo.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 import sys
 import os
 
diff --git a/Demo/turtle/turtledemo_two_canvases.py b/Demo/turtle/turtledemo_two_canvases.py
index 57ecb1d..d2d7188 100644
--- a/Demo/turtle/turtledemo_two_canvases.py
+++ b/Demo/turtle/turtledemo_two_canvases.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 ## DEMONSTRATES USE OF 2 CANVASES, SO CANNOT BE RUN IN DEMOVIEWER!
 """turtle example: Using TurtleScreen and RawTurtle
 for drawing on two distinct canvases.
diff --git a/Demo/zlib/minigzip.py b/Demo/zlib/minigzip.py
index 28d8b26..b2af7f9 100755
--- a/Demo/zlib/minigzip.py
+++ b/Demo/zlib/minigzip.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Demo program for zlib; it compresses or decompresses files, but *doesn't*
 # delete the original.  This doesn't support all of gzip's options.
 #
diff --git a/Demo/zlib/zlibdemo.py b/Demo/zlib/zlibdemo.py
index 53463dd..52f71a0 100755
--- a/Demo/zlib/zlibdemo.py
+++ b/Demo/zlib/zlibdemo.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # Takes an optional filename, defaulting to this file itself.
 # Reads the file and compresses the content using level 1 and level 9