Removed string-exception preference, added tabcheck and NavService preference, upped version number.
diff --git a/Mac/Lib/pythonprefs.py b/Mac/Lib/pythonprefs.py
index 40a2dd2..916ec9f 100644
--- a/Mac/Lib/pythonprefs.py
+++ b/Mac/Lib/pythonprefs.py
@@ -16,14 +16,14 @@
 OVERRIDE_GUSI_ID = 10241
 
 # version
-CUR_VERSION=4
+CUR_VERSION=5
 
 preffilename = PstringLoader(AnyResLoader('STR ', resname=PREFNAME_NAME)).load()
 pref_fss = preferencefile(preffilename, 'Pyth', 'pref')
 
 class PoptLoader(VersionLoader):
 	def __init__(self, loader):
-		VersionLoader.__init__(self, "bbbbbbbbbbbb", loader)
+		VersionLoader.__init__(self, "bbbbbbbbbbbbb", loader)
 		
 	def versioncheck(self, data):
 		if data[0] == CUR_VERSION:
@@ -89,8 +89,8 @@
 		flags = self.popt.load()
 		dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
 			dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \
-			dict['nointopt'], dict['noargs'], dict['oldexc'], \
-			dict['nosite'] = flags
+			dict['nointopt'], dict['noargs'], dict['tabwarn'], \
+			dict['nosite'], dict['nonavservice'] = flags
 		return dict
 		
 	def save(self, dict):
@@ -100,8 +100,8 @@
 		self.gusi.save((dict['creator'], dict['type'], dict['delayconsole']))
 		flags = dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
 			dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \
-			dict['nointopt'], dict['noargs'], dict['oldexc'], \
-			dict['nosite']
+			dict['nointopt'], dict['noargs'], dict['tabwarn'], \
+			dict['nosite'], dict['nonavservice']
 		self.popt.save(flags)
 
 def AppletOptions(file):
diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c
index 98298c8..98c8323 100644
--- a/Mac/Python/macmain.c
+++ b/Mac/Python/macmain.c
@@ -149,8 +149,9 @@
 	SET_OPT_ITEM(OPT_DEBUGGING, debugging);
 	SET_OPT_ITEM(OPT_KEEPNORMAL, keep_normal);
 	SET_OPT_ITEM(OPT_KEEPERROR, keep_error);
-	SET_OPT_ITEM(OPT_OLDEXC, oldexc);
+	SET_OPT_ITEM(OPT_TABWARN, tabwarn);
 	SET_OPT_ITEM(OPT_NOSITE, nosite);
+	SET_OPT_ITEM(OPT_NONAVSERV, nonavservice);
 	/* The rest are not settable interactively */
 
 #undef SET_OPT_ITEM
@@ -199,8 +200,9 @@
 		OPT_ITEM(OPT_DEBUGGING, debugging);
 		OPT_ITEM(OPT_KEEPNORMAL, keep_normal);
 		OPT_ITEM(OPT_KEEPERROR, keep_error);
-		OPT_ITEM(OPT_OLDEXC, oldexc);
+		OPT_ITEM(OPT_TABWARN, tabwarn);
 		OPT_ITEM(OPT_NOSITE, nosite);
+		OPT_ITEM(OPT_NONAVSERV, nonavservice);
 		
 #undef OPT_ITEM
 	}
@@ -266,7 +268,7 @@
 	Py_OptimizeFlag = options.optimize;
 	Py_DebugFlag = options.debugging;
 	Py_NoSiteFlag = options.nosite;
-	Py_UseClassExceptionsFlag = !(options.oldexc);
+	Py_TabcheckFlag = options.tabwarn;
 	if ( options.noargs ) {
 		/* don't process events at all without the scripts permission */
 		PyMacSchedParams scp;
@@ -313,6 +315,30 @@
 	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()
+{
+	if ( !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");
+			}
+		}
+	}
+}
+
 #ifdef USE_MAC_APPLET_SUPPORT
 /* Applet support */
 
@@ -360,6 +386,7 @@
 	init_common(&argc, &argv, 0);
 	
 	Py_Initialize();
+	PyMac_InstallNavServicesForSF();
 	PySys_SetArgv(argc, argv);
 	
 	err = run_main_resource();
@@ -383,6 +410,7 @@
 	
 	init_common(&argc, &argv, 1);
 	Py_Initialize();
+	PyMac_InstallNavServicesForSF();
 	PySys_SetArgv(argc, argv);
 }
 
@@ -448,6 +476,8 @@
 	
 	Py_Initialize();
 	
+	PyMac_InstallNavServicesForSF();
+
 	PySys_SetArgv(argc-1, argv+1);
 
 	if (filename == NULL && isatty((int)fileno(fp))) {
diff --git a/Mac/Resources/balloons.bh b/Mac/Resources/balloons.bh
index ebd9e3c..983af88 100644
--- a/Mac/Resources/balloons.bh
+++ b/Mac/Resources/balloons.bh
@@ -20,7 +20,9 @@
 13.3 Deselect to use new class-based standard exceptions.
 14.1 Selecting this disables the new package and site-python features.
 14.3 Deselecting this enables the new package and site-python features.
-16.1 Turn off balloon help.
+15.1 Turn off balloon help.
+16.1 Select this to keep the old behaviour for macfs Standard File calls
+16.3 Deselect this to auto-import macfsn which replaces macfs Standard File calls with Navigation Services wrappers
 END-DIALOG
 DIALOG 234
 1.1 Deleting the incorrect preference will not always work, but Python will run with standard options. 
diff --git a/Mac/Resources/dialogs.rsrc b/Mac/Resources/dialogs.rsrc
index d255146..ea1b102 100644
--- a/Mac/Resources/dialogs.rsrc
+++ b/Mac/Resources/dialogs.rsrc
Binary files differ
diff --git a/Mac/Resources/pythonpath.r b/Mac/Resources/pythonpath.r
index 34c6d40..415a435 100644
--- a/Mac/Resources/pythonpath.r
+++ b/Mac/Resources/pythonpath.r
@@ -21,6 +21,7 @@
 	byte argcArgv = 0, noArgcArgv = 1;
 	byte newStandardExceptions = 0, oldStandardExceptions = 1;
 	byte sitePython = 0, noSitePython = 1;
+	byte navService = 0, noNavService = 1;
 };
 
 type 'TMPL' {
@@ -48,6 +49,7 @@
 		"No argc/argv emulation",		'DBYT',
 		"Old standard exceptions",		'DBYT',
 		"No site-python support",		'DBYT',
+		"No NavServices in macfs",		'DBYT',
 	}
 };
 
@@ -66,6 +68,7 @@
 	argcArgv,
 	newStandardExceptions,
 	sitePython,
+	navService,
 };
 
 /* The sys.path initializer */
diff --git a/Mac/scripts/EditPythonPrefs.py b/Mac/scripts/EditPythonPrefs.py
index 343ea22..618d33e 100644
--- a/Mac/scripts/EditPythonPrefs.py
+++ b/Mac/scripts/EditPythonPrefs.py
@@ -48,8 +48,10 @@
 	"noargs",
 	"delayconsole",
 	None, None, None, None, None, None, None, None, # 11-18 are different
-	"oldexc",
-	"nosite"]
+	"tabwarn",
+	"nosite",
+	None,
+	"nonavservices"]
 opt_dialog_dict = {}
 for i in range(len(opt_dialog_map)):
 	if opt_dialog_map[i]:
diff --git a/Mac/scripts/EditPythonPrefs.rsrc b/Mac/scripts/EditPythonPrefs.rsrc
index e8452c4..83ccb5e 100644
--- a/Mac/scripts/EditPythonPrefs.rsrc
+++ b/Mac/scripts/EditPythonPrefs.rsrc
Binary files differ
diff --git a/Mac/scripts/EditPythonPrefsBH.bh b/Mac/scripts/EditPythonPrefsBH.bh
index f2ce285..c12f31d 100644
--- a/Mac/scripts/EditPythonPrefsBH.bh
+++ b/Mac/scripts/EditPythonPrefsBH.bh
@@ -36,6 +36,8 @@
 19.3 Deselect to use new class-based standard exceptions.
 20.1 Selecting this disables the new package and site-python features.
 20.3 Deselecting this enables the new package and site-python features.
-22.1 Press here to turn help balloons off again.
+21.1 Press here to turn help balloons off again.
+22.1 Select this to use old-style Standard File calls in macfs
+22.3 Deselect this to auto-import macfsn which replaces macfs StandardFile calls with Navigation Services wrappers
 END-DIALOG
 END
diff --git a/Mac/scripts/EditPythonPrefsBH.prj b/Mac/scripts/EditPythonPrefsBH.prj
index 4c3d719..dcfa467 100644
--- a/Mac/scripts/EditPythonPrefsBH.prj
+++ b/Mac/scripts/EditPythonPrefsBH.prj
Binary files differ
diff --git a/Mac/scripts/EditPythonPrefsBH.rsrc b/Mac/scripts/EditPythonPrefsBH.rsrc
index c2c864f..d272f63 100644
--- a/Mac/scripts/EditPythonPrefsBH.rsrc
+++ b/Mac/scripts/EditPythonPrefsBH.rsrc
Binary files differ