Oops... I Inadvertently lost their cvs files...
diff --git a/Mac/Lib/test/tae.py b/Mac/Lib/test/tae.py
new file mode 100644
index 0000000..73c36b9
--- /dev/null
+++ b/Mac/Lib/test/tae.py
@@ -0,0 +1,112 @@
+# The oldest AppleEvent test program.
+# Its function has been overtaken by echo.py and tell.py.
+
+import AE
+from AppleEvents import *
+import Evt
+from Events import *
+import struct
+import aetools
+import macfs
+import sys
+import MacOS
+
+MacOS.EnableAppswitch(0)
+
+def aehandler(request, reply):
+	tosend = []
+	print 'request:', aetools.unpackevent(request)
+	param = request.AEGetParamDesc(keyDirectObject, typeWildCard)
+	if param.type == typeAEList:
+		n = param.AECountItems()
+		print 'List has', n, 'items'
+		for i in range(1, 1+n):
+			type, item = param.AEGetNthDesc(i, typeFSS)
+			data = item.data
+			print 'item', i, ':', type, item.type, len(data), 'bytes'
+			vol, dir, fnlen = struct.unpack('hlb', data[:7])
+			filename = data[7:7+fnlen]
+			print 'vol:', vol, '; dir:', dir, '; filename:', `filename`
+			print 'full path:', macfs.FSSpec((vol,dir,filename)).as_pathname()
+			tosend.append(item)
+	else:
+		pass
+		print 'param:', (param.type, param.data[:20]), param.data[20:] and '...'
+	if tosend:
+		passtothink(tosend)
+
+
+def passtothink(list):
+	target = AE.AECreateDesc(typeApplSignature, 'KAHL')
+	event = AE.AECreateAppleEvent(kCoreEventClass,
+	                              kAEOpenDocuments,
+	                              target,
+	                              kAutoGenerateReturnID,
+	                              kAnyTransactionID)
+	aetools.packevent(event, {keyDirectObject: list})
+	reply = event.AESend(kAENoReply | kAEAlwaysInteract | kAECanSwitchLayer,
+	                     kAENormalPriority,
+	                     kAEDefaultTimeout)
+	#print "Reply:", aetools.unpackevent(reply)
+	return
+	event = AE.AECreateAppleEvent(kCoreEventClass,
+	                              kAEOpenApplication,
+	                              target,
+	                              kAutoGenerateReturnID,
+	                              kAnyTransactionID)
+	reply = event.AESend(kAENoReply | kAEAlwaysInteract | kAECanSwitchLayer,
+	                     kAENormalPriority,
+	                     kAEDefaultTimeout)
+
+def unihandler(req, rep):
+	print 'unihandler'
+	aehandler(req, rep)
+
+quit = 0
+def quithandler(req, rep):
+	global quit
+	quit = 1
+
+def corehandler(req, rep):
+	print 'core event!'
+	parameters, attributes = aetools.unpackevent(req)
+	print "event class =", attributes['evcl']
+	print "event id =", attributes['evid']
+	print 'parameters:', parameters
+	# echo the arguments, to see how Script Editor formats them
+	aetools.packevent(rep, parameters)
+
+def wildhandler(req, rep):
+	print 'wildcard event!'
+	parameters, attributes = aetools.unpackevent(req)
+	print "event class =", attributes['evcl']
+	print "event id =", attributes['evid']
+	print 'parameters:', parameters
+
+AE.AEInstallEventHandler(typeAppleEvent, kAEOpenApplication, aehandler)
+AE.AEInstallEventHandler(typeAppleEvent, kAEOpenDocuments, aehandler)
+AE.AEInstallEventHandler(typeAppleEvent, kAEPrintDocuments, aehandler)
+AE.AEInstallEventHandler(typeAppleEvent, kAEQuitApplication, quithandler)
+AE.AEInstallEventHandler(typeAppleEvent, typeWildCard, unihandler)
+AE.AEInstallEventHandler('core', typeWildCard, corehandler)
+#AE.AEInstallEventHandler(typeWildCard, typeWildCard, wildhandler)
+
+
+def main():
+	global quit
+	quit = 0
+	while not quit:
+		ok, e = Evt.WaitNextEvent(-1, 60)
+		if ok:
+			print 'Event:', e
+			if e[0] == 23: # kHighLevelEvent
+				AE.AEProcessAppleEvent(e)
+			elif e[0] == keyDown and chr(e[1]&0xff) == '.' and e[4]&cmdKey:
+				raise KeyboardInterrupt, "Command-Period"
+			else:
+				MacOS.HandleEvent(e)
+
+if __name__ == '__main__':
+	main()
+
+print "This module is obsolete -- use echo.py or tell.py ..."