Moved macfsn hackery from macmain.c to macfsmodule.c so it loads
on demand instead of at startup.
diff --git a/Mac/Modules/macfsmodule.c b/Mac/Modules/macfsmodule.c
index 15d9f30..f16cd36 100644
--- a/Mac/Modules/macfsmodule.c
+++ b/Mac/Modules/macfsmodule.c
@@ -39,6 +39,9 @@
 
 #include "getapplbycreator.h"
 
+#include "pythonresources.h"
+extern PyMac_PrefRecord PyMac_options;
+
 #ifdef USE_TOOLBOX_OBJECT_GLUE
 extern int _PyMac_GetFSSpec(PyObject *, FSSpec *);
 extern PyObject *_PyMac_BuildFSSpec(FSSpec *);
@@ -1206,6 +1209,33 @@
 	return (PyObject *)newmfssobject(v);
 }
 
+
+/*
+** Import the macfsn module, which will override the Standard File
+** calls in the macfs builtin module by Navigation Services versions,
+** if available on this machine.
+*/
+static void
+PyMac_InstallNavServicesForSF(void)
+{
+	if ( !PyMac_options.nonavservice ) {
+		PyObject *m = PyImport_ImportModule("macfsn");
+		
+		if ( m == NULL ) {
+			PySys_WriteStderr("'import macfsn' failed; ");
+			if (Py_VerboseFlag) {
+				PySys_WriteStderr("traceback:\n");
+				PyErr_Print();
+			}
+			else {
+				PySys_WriteStderr("use -v for traceback\n");
+			}
+			PyErr_Clear();
+		}
+	}
+}
+
+
 /* Initialization function for the module (*must* be called initmacfs) */
 
 void
@@ -1235,5 +1265,6 @@
 	Mfsitype.ob_type = &PyType_Type;
 	Py_INCREF(&Mfsitype);
 	PyDict_SetItemString(d, "FInfoType", (PyObject *)&Mfsitype);
-	/* XXXX Add constants here */
+
+	PyMac_InstallNavServicesForSF();
 }
diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c
index ad0d82b..b86b528 100644
--- a/Mac/Python/macmain.c
+++ b/Mac/Python/macmain.c
@@ -392,31 +392,6 @@
 	return sts;
 }
 	
-/*
-** Import the macfsn module, which will override the Standard File
-** calls in the macfs builtin module by Navigation Services versions,
-** if available on this machine.
-*/
-static void
-PyMac_InstallNavServicesForSF(void)
-{
-	if ( !PyMac_options.nonavservice ) {
-		PyObject *m = PyImport_ImportModule("macfsn");
-		
-		if ( m == NULL ) {
-			PySys_WriteStderr("'import macfsn' failed; ");
-			if (Py_VerboseFlag) {
-				PySys_WriteStderr("traceback:\n");
-				PyErr_Print();
-			}
-			else {
-				PySys_WriteStderr("use -v for traceback\n");
-			}
-			PyErr_Clear();
-		}
-	}
-}
-
 #ifdef USE_MAC_APPLET_SUPPORT
 /* Applet support */
 
@@ -464,7 +439,6 @@
 	init_common(&argc, &argv, 0);
 	
 	Py_Initialize();
-	PyMac_InstallNavServicesForSF();
 	PySys_SetArgv(argc, argv);
 	
 	err = run_main_resource();
@@ -488,7 +462,6 @@
 	
 	init_common(&argc, &argv, 1);
 	Py_Initialize();
-	PyMac_InstallNavServicesForSF();
 	PySys_SetArgv(argc, argv);
 }
 
@@ -675,8 +648,6 @@
 	
 	PyUnicode_SetDefaultEncoding(PyMac_getscript());
 	
-	PyMac_InstallNavServicesForSF();
-
 	PySys_SetArgv(argc, argv);
 
 	if (filename == NULL && isatty((int)fileno(fp))) {