Use MacOS.OutputSeen() on menuselections. Removed KeepConsole code again. This solution is better: it treats a menu selection in the same way as input to stdin (i.e. as an ack of the output that went before).
diff --git a/Mac/Lib/FrameWork.py b/Mac/Lib/FrameWork.py
index 50ffe5f..2d75965 100644
--- a/Mac/Lib/FrameWork.py
+++ b/Mac/Lib/FrameWork.py
@@ -149,13 +149,9 @@
 	
 	schedparams = (0, 0)	# By default disable Python's event handling
 	
-	keepconsole = 0			# By default don't keep console window open
-	
 	def mainloop(self, mask = everyEvent, wait = 0):
 		self.quitting = 0
 		saveparams = apply(MacOS.SchedParams, self.schedparams)
-		if self.keepconsole != None:
-			MacOS.KeepConsole(self.keepconsole)
 		try:
 			while not self.quitting:
 				try:
@@ -291,6 +287,7 @@
 			HiliteMenu(0)
 	
 	def do_menu(self, id, item, window, event):
+		MacOS.OutputSeen()
 		self.menubar.dispatch(id, item, window, event)