diff --git a/Mac/Include/macglue.h b/Mac/Include/macglue.h
index b61a78e..7944471 100644
--- a/Mac/Include/macglue.h
+++ b/Mac/Include/macglue.h
@@ -37,7 +37,8 @@
 void PyMac_Yield Py_PROTO((void));			/* optional idle routine for mainloop */
 void PyMac_SetYield Py_PROTO((long, long, long, long));	/* Set timeouts */
 PyObject *PyErr_Mac(PyObject *, int);		/* Exception with a mac error */
-PyObject *PyMac_Error(OSErr);			/* Uses PyMac_GetOSErrException */ 
+PyObject *PyMac_Error(OSErr);			/* Uses PyMac_GetOSErrException */
+void PyMac_HandleEvent Py_PROTO((EventRecord *));	/* Handle one event, if possible */
 
 int PyMac_Idle(void);				/* Idle routine */
 
diff --git a/Mac/Modules/macosmodule.c b/Mac/Modules/macosmodule.c
index 2b98fc6..ceb8a96 100644
--- a/Mac/Modules/macosmodule.c
+++ b/Mac/Modules/macosmodule.c
@@ -202,6 +202,19 @@
 	return Py_None;
 }
 
+
+static PyObject *
+MacOS_HandleEvent(PyObject *self, PyObject *args)
+{
+	EventRecord ev;
+	
+	if (!PyArg_ParseTuple(args, "O&", PyMac_GetEventRecord, &ev))
+		return NULL;
+	PyMac_HandleEvent(&ev);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
 static PyMethodDef MacOS_Methods[] = {
 	{"AcceptHighLevelEvent",	MacOS_AcceptHighLevelEvent, 1},
 	{"GetCreatorAndType",		MacOS_GetCreatorAndType, 1},
@@ -211,6 +224,7 @@
 #endif
 	{"SetScheduleTimes",	MacOS_SetScheduleTimes, 1},
 	{"EnableAppswitch",		MacOS_EnableAppswitch, 1},
+	{"HandleEvent",			MacOS_HandleEvent, 1},
 	{NULL,				NULL}		 /* Sentinel */
 };
 
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index a99023b..98a5c7b 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -267,13 +267,34 @@
 }
 
 /*
+** Handle an event, either one found in the mainloop eventhandler or
+** one passed back from the python program.
+*/
+void
+PyMac_HandleEvent(evp)
+	EventRecord *evp;
+{
+	WindowPtr wp;
+			
+#ifdef __MWERKS__
+	/* If SIOUX wants it we're done */
+	(void)SIOUXHandleOneEvent(evp);
+#else
+	/* Other compilers are just unlucky: we only weed out clicks in other applications */
+	if ( evp->what == mouseDown ) {
+		if ( FindWindow(evp->where, &wp) == inSysWindow )
+			SystemClick(evp, wp);
+	}
+#endif /* !__MWERKS__ */
+}
+
+/*
 ** Yield the CPU to other tasks.
 */
 static
 PyMac_DoYield()
 {
 	EventRecord ev;
-	WindowPtr wp;
 	long yield;
 	static int no_waitnextevent = -1;
 	int gotone;
@@ -306,17 +327,7 @@
 		/* Get out quickly if nothing interesting is happening */
 		if ( !gotone || ev.what == nullEvent )
 			break;
-			
-#ifdef __MWERKS__
-		/* If SIOUX wants it we're done too */
-		(void)SIOUXHandleOneEvent(&ev);
-#else
-		/* Other compilers are just unlucky: we only weed out clicks in other applications */
-		if ( ev.what == mouseDown ) {
-			if ( FindWindow(ev.where, &wp) == inSysWindow )
-				SystemClick(&ev, wp);
-		}
-#endif /* !__MWERKS__ */
+		PyMac_HandleEvent(&ev);
 	}
 	lastyield = TickCount();
 }
