On OSX the finder will return from an open() event before the application
has actually entered its event loop. As a stopgap, allow for a 10 second
grace period.
diff --git a/Lib/plat-mac/aetools.py b/Lib/plat-mac/aetools.py
index 8ac293d..0639541 100644
--- a/Lib/plat-mac/aetools.py
+++ b/Lib/plat-mac/aetools.py
@@ -26,12 +26,16 @@
 from Carbon import AppleEvents
 import MacOS
 import sys
+import time
 
 from aetypes import *
 from aepack import packkey, pack, unpack, coerce, AEDescType
 
 Error = 'aetools.Error'
 
+# Amount of time to wait for program to be launched
+LAUNCH_MAX_WAIT_TIME=10
+
 # Special code to unpack an AppleEvent (which is *not* a disguised record!)
 # Note by Jack: No??!? If I read the docs correctly it *is*....
 
@@ -174,6 +178,14 @@
 			self.send('ascr', 'noop')
 		except AE.Error:
 			_launch(self.target_signature)
+			for i in range(LAUNCH_MAX_WAIT_TIME):
+				try:
+					self.send('ascr', 'noop')
+				except AE.Error:
+					pass
+				else:
+					break
+				time.sleep(1)
 			
 	def start(self):
 		"""Deprecated, used _start()"""