MAde a few things more orthogonal and did some cleanups:
- Applications now have their (minimal) main prrogram in
  macapplication.c and the rest of the init code in macglue.c.
- A new define, USE_MAC_APPLET_SUPPORT, independent of
  USE_MAC_SHARED_LIB
- chdir to script directory now done in PyMac_InitApplication.
diff --git a/Mac/Modules/config.c b/Mac/Modules/config.c
index 32313a7..1ce7f77 100644
--- a/Mac/Modules/config.c
+++ b/Mac/Modules/config.c
@@ -29,9 +29,8 @@
 #endif
 
 #ifdef macintosh
-/* The Macintosh main program is in macmain.c */
+/* The Macintosh main program is in either macapplet.c or macapplication.c */
 #define NO_MAIN
-char *fileargument;		/* So main() can tell us the program name */
 #endif
 
 #include <stdio.h>
@@ -42,7 +41,6 @@
 #include "osdefs.h"
 #include "intrcheck.h"
 
-char *PyMac_GetPythonDir();
 
 #ifndef NO_MAIN
 
@@ -168,12 +166,13 @@
 	** - Prepend the python home-directory (which is obtained from a Preferences
 	**   resource)
 	** - Add :
-	** - Chdir to where the source file (if any) lives
 	*/
 	static char *pythonpath;
 	char *curwd;
 	char *p, *endp;
 	int newlen;
+	extern char *PyMac_GetPythonDir();
+	extern char *PyMac_GetScriptPath();
 	
 	if ( pythonpath ) return pythonpath;
 	curwd = PyMac_GetPythonDir();
@@ -205,14 +204,6 @@
 		pythonpath[newlen] = '\0';
 		p = endp + 1;
 	}
-	if ( fileargument ) {
-		strcpy(curwd, fileargument);
-		endp = strrchr(curwd, ':');
-		if ( endp && endp > curwd ) {
-			*endp = '\0';
-			chdir(curwd);
-		}
-	}
 	return pythonpath;
 #else /* !macintosh */
 	char *path = getenv("PYTHONPATH");
@@ -346,13 +337,17 @@
 	{"mactcp", initmactcp},
 #endif
 	{"AE", initAE},
+#ifndef __MWERKS__
 	{"Ctl", initCtl},
 	{"Dlg", initDlg},
+#endif
 	{"Evt", initEvt},
 	{"Menu", initMenu},
+#ifndef __MWERKS__
 	{"Qd", initQd},
 	{"Snd", initSnd},
 	{"Win", initWin},
+#endif
 	{"Res", initRes},
 
 /* -- ADDMODULE MARKER 2 -- */
diff --git a/Mac/Python/macapplication.c b/Mac/Python/macapplication.c
new file mode 100644
index 0000000..bac0620
--- /dev/null
+++ b/Mac/Python/macapplication.c
@@ -0,0 +1,35 @@
+/***********************************************************
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
+
+                        All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its 
+documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in 
+supporting documentation, and that the names of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+******************************************************************/
+
+/* Macintosh Applet Python main program */
+
+#ifdef __CFM68K__
+#pragma lib_export on
+#endif
+
+extern void PyMac_InitApplication();
+
+main() {
+	PyMac_InitApplication();
+}
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index cab94ce..7135f33 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -117,7 +117,6 @@
 
 int PyMac_DoYieldEnabled = 1;	/* Don't do eventloop when false */
 
-
 /* Convert C to Pascal string. Returns pointer to static buffer. */
 unsigned char *
 Pstring(char *str)
@@ -787,26 +786,7 @@
 }
 
 
-#ifndef USE_MAC_SHARED_LIBRARY
-
-/* For normal application */
-void
-main()
-{
-	int argc;
-	char **argv;
-	
-#ifdef __MWERKS__
-	SIOUXSettings.asktosaveonclose = 0;
-	SIOUXSettings.showstatusline = 0;
-	SIOUXSettings.tabspaces = 4;
-#endif
-	argc = PyMac_GetArgv(&argv);
-	Py_Main(argc, argv);
-}
-
-#else /* USE_MAC_SHARED_LIBRARY */
-
+#ifdef USE_MAC_APPLET_SUPPORT
 /* Applet support */
 
 /* Run a compiled Python Python script from 'PYC ' resource __main__ */
@@ -850,9 +830,7 @@
 	char **argv;
 	int err;
 
-#ifdef USE_MAC_SHARED_LIBRARY
 	PyMac_AddLibResources();
-#endif
 #ifdef __MWERKS__
 	SIOUXSettings.asktosaveonclose = 0;
 	SIOUXSettings.showstatusline = 0;
@@ -873,4 +851,34 @@
 	/* XXX Should we bother to Py_Exit(sts)? */
 }
 
-#endif /* USE_MAC_SHARED_LIBRARY */
+#endif /* USE_MAC_APPLET_SUPPORT */
+
+/* For normal application */
+void
+PyMac_InitApplication()
+{
+	int argc;
+	char **argv;
+	
+#ifdef USE_MAC_SHARED_LIBRARY
+	PyMac_AddLibResources();
+#endif
+#ifdef __MWERKS__
+	SIOUXSettings.asktosaveonclose = 0;
+	SIOUXSettings.showstatusline = 0;
+	SIOUXSettings.tabspaces = 4;
+#endif
+	argc = PyMac_GetArgv(&argv);
+	if ( argc > 1 ) {
+		/* We're running a script. Attempt to change current directory */
+		char curwd[256], *endp;
+		
+		strcpy(curwd, argv[1]);
+		endp = strrchr(curwd, ':');
+		if ( endp && endp > curwd ) {
+			*endp = '\0';
+			chdir(curwd);
+		}
+	}
+	Py_Main(argc, argv);
+}