Run 2to3 over the Demo/ directory to shut up parse errors from 2to3 about lingering print statements.
diff --git a/Demo/threads/Generator.py b/Demo/threads/Generator.py
index 63bed9b..0cc1bda 100644
--- a/Demo/threads/Generator.py
+++ b/Demo/threads/Generator.py
@@ -32,7 +32,7 @@
     # Called by producer for each value; raise Killed if no more needed
     def put(self, value):
         if self.killed:
-            raise TypeError, 'put() called on killed generator'
+            raise TypeError('put() called on killed generator')
         self.value = value
         self.getlock.release()  # Resume consumer thread
         self.putlock.acquire()  # Wait for next get() call
@@ -41,7 +41,7 @@
     # Called by producer to get next value; raise EOFError if no more
     def get(self):
         if self.killed:
-            raise TypeError, 'get() called on killed generator'
+            raise TypeError('get() called on killed generator')
         self.putlock.release()  # Resume producer thread
         self.getlock.acquire()  # Wait for value to appear
         if self.done:
@@ -50,7 +50,7 @@
     # Called by consumer if no more values wanted
     def kill(self):
         if self.killed:
-            raise TypeError, 'kill() called on killed generator'
+            raise TypeError('kill() called on killed generator')
         self.killed = 1
         self.putlock.release()
     # Clone constructor
@@ -58,27 +58,27 @@
         return Generator(self.func, self.args)
 
 def pi(g):
-    k, a, b, a1, b1 = 2L, 4L, 1L, 12L, 4L
+    k, a, b, a1, b1 = 2, 4, 1, 12, 4
     while 1:
         # Next approximation
-        p, q, k = k*k, 2L*k+1L, k+1L
+        p, q, k = k*k, 2*k+1, k+1
         a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
         # Print common digits
         d, d1 = a/b, a1/b1
         while d == d1:
             g.put(int(d))
-            a, a1 = 10L*(a%b), 10L*(a1%b1)
+            a, a1 = 10*(a%b), 10*(a1%b1)
             d, d1 = a/b, a1/b1
 
 def test():
     g = Generator(pi, ())
     g.kill()
     g = Generator(pi, ())
-    for i in range(10): print g.get(),
-    print
+    for i in range(10): print(g.get(), end=' ')
+    print()
     h = g.clone()
     g.kill()
     while 1:
-        print h.get(),
+        print(h.get(), end=' ')
 
 test()