Adapted to Universal Headers 3.4: new refcontype and use UPP names in stead of Proc names for callback creation.
diff --git a/Mac/Modules/ae/AEmodule.c b/Mac/Modules/ae/AEmodule.c
index 9fd51fe..236bbd4 100644
--- a/Mac/Modules/ae/AEmodule.c
+++ b/Mac/Modules/ae/AEmodule.c
@@ -1204,9 +1204,14 @@
 };
 
 
+#if UNIVERSAL_INTERFACES_VERSION >= 0x0340
+typedef long refcontype;
+#else
+typedef unsigned long refcontype;
+#endif
 
 static pascal OSErr
-GenericEventHandler(const AppleEvent *request, AppleEvent *reply, unsigned long refcon)
+GenericEventHandler(const AppleEvent *request, AppleEvent *reply, refcontype refcon)
 {
 	PyObject *handler = (PyObject *)refcon;
 	AEDescObject *requestObject, *replyObject;
@@ -1244,7 +1249,7 @@
 
 
 		upp_AEIdleProc = NewAEIdleUPP(AEIdleProc);
-		upp_GenericEventHandler = NewAEEventHandlerUPP(GenericEventHandler);
+		upp_GenericEventHandler = NewAEEventHandlerUPP(&GenericEventHandler);
 		PyMac_INIT_TOOLBOX_OBJECT_NEW(AEDesc *, AEDesc_New);
 		PyMac_INIT_TOOLBOX_OBJECT_CONVERT(AEDesc, AEDesc_Convert);
 
diff --git a/Mac/Modules/ae/aesupport.py b/Mac/Modules/ae/aesupport.py
index 321a210..eacbee7 100644
--- a/Mac/Modules/ae/aesupport.py
+++ b/Mac/Modules/ae/aesupport.py
@@ -116,8 +116,14 @@
 """
 
 finalstuff = finalstuff + """
+#if UNIVERSAL_INTERFACES_VERSION >= 0x0340
+typedef long refcontype;
+#else
+typedef unsigned long refcontype;
+#endif
+
 static pascal OSErr
-GenericEventHandler(const AppleEvent *request, AppleEvent *reply, unsigned long refcon)
+GenericEventHandler(const AppleEvent *request, AppleEvent *reply, refcontype refcon)
 {
 	PyObject *handler = (PyObject *)refcon;
 	AEDescObject *requestObject, *replyObject;
@@ -149,7 +155,11 @@
 
 initstuff = initstuff + """
 	upp_AEIdleProc = NewAEIdleUPP(AEIdleProc);
+#if UNIVERSAL_INTERFACES_VERSION >= 0x0340
+	upp_GenericEventHandler = NewAEEventHandlerUPP(&GenericEventHandler);
+#else
 	upp_GenericEventHandler = NewAEEventHandlerUPP(GenericEventHandler);
+#endif
 	PyMac_INIT_TOOLBOX_OBJECT_NEW(AEDesc *, AEDesc_New);
 	PyMac_INIT_TOOLBOX_OBJECT_CONVERT(AEDesc, AEDesc_Convert);
 """