diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index cc55d08..480b741 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -215,7 +215,57 @@
 	GUSISetHook(GUSI_SpinHook, (GUSIHook)PyMac_GUSISpin);
 }
 
-#endif
+/* Called at exit() time thru atexit(), to stop event processing */
+void
+PyMac_StopGUSISpin() {
+	PyMac_ConsoleIsDead = 1;
+}
+
+/*
+** Replacement routines for the PLstr... functions so we don't need
+** StdCLib. Moreover, that implementation is broken under cfm68k...
+*/
+void
+PLstrcpy(to, fr)
+	unsigned char *to, *fr;
+{
+	memcpy(to, fr, fr[0]+1);
+}
+
+int
+PLstrcmp(s1, s2)
+	unsigned char *s1, *s2;
+{
+	int res;
+	int l = s1[0] < s2[0] ? s1[0] : s2[0];
+	
+	res = memcmp(s1+1, s2+1, l);
+	if ( res != 0 )
+		return res;
+	
+	if ( s1 < s2 )
+		return -1;
+	else if ( s1 > s2 )
+		return 1;
+	else
+		return 0;
+}
+
+unsigned char *
+PLstrrchr(str, chr)
+	unsigned char *str;
+	unsigned char chr;
+{
+	unsigned char *ptr = 0;
+	unsigned char *p;
+	
+	for(p=str+1; p<str+str[0]; p++)
+		if ( *p == chr )
+			ptr = p;
+	return ptr;
+}
+	
+#endif /* USE_GUSI */
 
 
 /* Convert C to Pascal string. Returns pointer to static buffer. */
diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c
index 9e8fbc5..811258a 100644
--- a/Mac/Python/macmain.c
+++ b/Mac/Python/macmain.c
@@ -209,6 +209,7 @@
 	GUSIDefaultSetup();
 	PyMac_SetGUSISpin();
 	PyMac_SetGUSIOptions();
+	atexit(PyMac_StopGUSISpin);
 #endif
 
 #ifdef USE_SIOUX
@@ -464,13 +465,6 @@
 	}
 	else
 		SIOUXSettings.autocloseonquit = 1;
-#ifdef USE_GUSI
-	/*
-	** Workaround for Sioux/GUSI combo: we should not call
-	** SiouxHandleOneEvent after the window is closed
-	*/
-	PyMac_ConsoleIsDead = 1;
-#endif /* USE_GUSI */
 #endif /* USE_SIOUX */
 #ifdef THINK_C
 	console_options.pause_atexit = keep;
@@ -487,6 +481,13 @@
 	return orig_argv[0];
 }
 
+/* The same, but used differently */
+char *
+Py_GetProgramFullPath()
+{
+	return Py_GetProgramName();
+}
+
 
 /* Make the *original* argc/argv available to other modules.
    This is rare, but it is needed by the secureware extension. */
