Index: doc/papers/concurrency/examples/Pingpong.py
===================================================================
--- doc/papers/concurrency/examples/Pingpong.py	(revision 1e5d0f0c89a1f3d283c41c6a75149d8ff0ece478)
+++ doc/papers/concurrency/examples/Pingpong.py	(revision e068c8a8da15b590c9ee6dc1bf9fefcffcc2b1dc)
@@ -1,32 +1,35 @@
 def PingPong( name, N ):
-	partner = (yield)           # get partner
-	yield                       # resume scheduler
+	partner = yield				# get partner
+	yield						# resume scheduler
 	for i in range( N ):
 		print( name )
-		yield partner           # execute next
+		yield partner			# execute next
 	print( "end", name )
 
 def Scheduler():
-	n = (yield)                 # starting coroutine
-	while True:
-		n = next( n )           # schedule coroutine
+	n = yield					# starting coroutine
+	try:
+		while True:
+			n = next( n )		# schedule coroutine
+	except StopIteration:
+		pass
 
 pi = PingPong( "ping", 5 )
 po = PingPong( "pong", 5 )
-next( pi )                      # prime
-pi.send( po )                   # send partner
-next( po )                      # prime
-po.send( pi )                   # send partner
+next( pi )						# prime
+pi.send( po )					# send partner
+next( po )						# prime
+po.send( pi )					# send partner
 
 s = Scheduler();
-next( s )                       # prime
+next( s )						# prime
 try:
 	s.send( pi )				# start cycle
-except StopIteration:
-	print( "scheduler stop" )
+except StopIteration:			# scheduler stopped
+	pass
 print( "stop" )
 
 # Local Variables: #
 # tab-width: 4 #
-# compile-command: "python3.5 Pingpong.py" #
+# compile-command: "python3.7 Pingpong.py" #
 # End: #
