Fixed callback handling on 68K machines.
diff --git a/Mac/Modules/waste/wastemodule.c b/Mac/Modules/waste/wastemodule.c
index 22fd22b..9c62d1c 100644
--- a/Mac/Modules/waste/wastemodule.c
+++ b/Mac/Modules/waste/wastemodule.c
@@ -119,7 +119,10 @@
 
 /* Stuff for the callbacks: */
 static PyObject *callbackdict;
-UniversalProcPtr upp_new_handler, upp_dispose_handler, upp_draw_handler, upp_click_handler;
+WENewObjectUPP upp_new_handler;
+WEDisposeObjectUPP upp_dispose_handler;
+WEDrawObjectUPP upp_draw_handler;
+WEClickObjectUPP upp_click_handler;
 
 static OSErr
 any_handler(WESelector what, WEObjectReference who, PyObject *args, PyObject **rv)
@@ -1826,10 +1829,10 @@
 				&py_handler,
 				ExistingwasteObj_New, &we) ) return NULL;
 				
-		if ( selector == weNewHandler ) handler = upp_new_handler;
-		else if ( selector == weDisposeHandler ) handler = upp_dispose_handler;
-		else if ( selector == weDrawHandler ) handler = upp_draw_handler;
-		else if ( selector == weClickHandler ) handler = upp_click_handler;
+		if ( selector == weNewHandler ) handler = (UniversalProcPtr)upp_new_handler;
+		else if ( selector == weDisposeHandler ) handler = (UniversalProcPtr)upp_dispose_handler;
+		else if ( selector == weDrawHandler ) handler = (UniversalProcPtr)upp_draw_handler;
+		else if ( selector == weClickHandler ) handler = (UniversalProcPtr)upp_click_handler;
 		else return PyMac_Error(weUndefinedSelectorErr);
 				
 		if ((key = Py_BuildValue("O&O&", 
@@ -1914,9 +1917,9 @@
 		if (callbackdict == NULL || PyDict_SetItemString(d, "callbacks", callbackdict) != 0)
 			Py_FatalError("can't initialize Waste.callbackdict");
 		upp_new_handler = NewWENewObjectProc(my_new_handler);
-		upp_dispose_handler = NewWENewObjectProc(my_dispose_handler);
-		upp_draw_handler = NewWENewObjectProc(my_draw_handler);
-		upp_click_handler = NewWENewObjectProc(my_click_handler);
+		upp_dispose_handler = NewWEDisposeObjectProc(my_dispose_handler);
+		upp_draw_handler = NewWEDrawObjectProc(my_draw_handler);
+		upp_click_handler = NewWEClickObjectProc(my_click_handler);
 
 
 }
diff --git a/Mac/Modules/waste/wastesupport.py b/Mac/Modules/waste/wastesupport.py
index ad18d26..3d7c1e7 100644
--- a/Mac/Modules/waste/wastesupport.py
+++ b/Mac/Modules/waste/wastesupport.py
@@ -126,7 +126,10 @@
 
 /* Stuff for the callbacks: */
 static PyObject *callbackdict;
-UniversalProcPtr upp_new_handler, upp_dispose_handler, upp_draw_handler, upp_click_handler;
+WENewObjectUPP upp_new_handler;
+WEDisposeObjectUPP upp_dispose_handler;
+WEDrawObjectUPP upp_draw_handler;
+WEClickObjectUPP upp_click_handler;
 
 static OSErr
 any_handler(WESelector what, WEObjectReference who, PyObject *args, PyObject **rv)
@@ -279,9 +282,9 @@
 	if (callbackdict == NULL || PyDict_SetItemString(d, "callbacks", callbackdict) != 0)
 		Py_FatalError("can't initialize Waste.callbackdict");
 	upp_new_handler = NewWENewObjectProc(my_new_handler);
-	upp_dispose_handler = NewWENewObjectProc(my_dispose_handler);
-	upp_draw_handler = NewWENewObjectProc(my_draw_handler);
-	upp_click_handler = NewWENewObjectProc(my_click_handler);
+	upp_dispose_handler = NewWEDisposeObjectProc(my_dispose_handler);
+	upp_draw_handler = NewWEDrawObjectProc(my_draw_handler);
+	upp_click_handler = NewWEClickObjectProc(my_click_handler);
 """
 
 
@@ -363,10 +366,10 @@
 			&py_handler,
 			ExistingwasteObj_New, &we) ) return NULL;
 			
-	if ( selector == weNewHandler ) handler = upp_new_handler;
-	else if ( selector == weDisposeHandler ) handler = upp_dispose_handler;
-	else if ( selector == weDrawHandler ) handler = upp_draw_handler;
-	else if ( selector == weClickHandler ) handler = upp_click_handler;
+	if ( selector == weNewHandler ) handler = (UniversalProcPtr)upp_new_handler;
+	else if ( selector == weDisposeHandler ) handler = (UniversalProcPtr)upp_dispose_handler;
+	else if ( selector == weDrawHandler ) handler = (UniversalProcPtr)upp_draw_handler;
+	else if ( selector == weClickHandler ) handler = (UniversalProcPtr)upp_click_handler;
 	else return PyMac_Error(weUndefinedSelectorErr);
 			
 	if ((key = Py_BuildValue("O&O&",