diff --git a/Mac/Include/macglue.h b/Mac/Include/macglue.h
index ec2dfbd..fe8d691 100644
--- a/Mac/Include/macglue.h
+++ b/Mac/Include/macglue.h
@@ -127,6 +127,10 @@
 void PyMac_InitApplet(void);			/* Initialize and run an Applet */
 void PyMac_Initialize(void);			/* Initialize function for embedding Python */
 
+#ifdef USE_GUSI2
+short PyMac_OpenPrefFile(void);			/* From macgetpath.c, open and return preference file */
+#endif
+
 /* From macfiletype.c: */
 
 long getfiletype(char *);			/* Get file type */
diff --git a/Mac/Python/gusiconfig.cpp b/Mac/Python/gusiconfig.cpp
index c69498f..943a0a6 100644
--- a/Mac/Python/gusiconfig.cpp
+++ b/Mac/Python/gusiconfig.cpp
@@ -5,9 +5,11 @@
 #define GUSI_SOURCE
 #include <GUSIConfig.h>
 #include <sys/cdefs.h>
+#include <Resources.h>
 
 #include "Python.h"
 #include "macglue.h"
+#include "pythonresources.h"
 
 static void
 PyMac_GUSISpin(bool wait)
@@ -79,13 +81,44 @@
 GUSIConfiguration::FileSuffix	sSuffices[] = {
 	"", '????', '????'
 };
-
 extern "C" void GUSISetupConfig()
 {
-	GUSIConfiguration * config =
-		GUSIConfiguration::CreateInstance(GUSIConfiguration::kNoResource);
+	Handle h;
+	short oldrh, prefrh = -1;
+	short resource_id = GUSIConfiguration::kNoResource;
+	
+	oldrh = CurResFile();
+	
+	/* Try override from the application resource fork */
+	UseResFile(PyMac_AppRefNum);
+	h = Get1Resource('GU\267I', GUSIOPTIONSOVERRIDE_ID);
+	if ( h ) {
+		resource_id = GUSIOPTIONSOVERRIDE_ID;
+	} else {
+		/* Next try normal resource from preference file */
+		prefrh = PyMac_OpenPrefFile();
+		h = Get1Resource('GU\267I', GUSIOPTIONS_ID);
+		if ( h ) {
+			resource_id = GUSIOPTIONS_ID;
+		} else {
+			/* Finally try normal resource from application */
+			if ( prefrh != -1 ) {
+				CloseResFile(prefrh);
+				prefrh = -1;
+			}
+			resource_id = GUSIOPTIONS_ID;
+		}
+	}
 
-	config->ConfigureDefaultTypeCreator('TEXT', 'TEXT');
+	/* Now we have the right resource file topmost and the id. Init GUSI. */
+	GUSIConfiguration * config =
+		GUSIConfiguration::CreateInstance(resource_id);
+
+	/* Finally restore the old resource file */
+   	if ( prefrh != -1) CloseResFile(prefrh);
+	UseResFile(oldrh);
+
+	config->ConfigureDefaultTypeCreator('ttxt', 'TEXT');
 	config->ConfigureSuffices(
 		sizeof(sSuffices)/sizeof(GUSIConfiguration::FileSuffix)-1, sSuffices);
 	config->ConfigureAutoInitGraf(false);
diff --git a/Mac/Python/macgetpath.c b/Mac/Python/macgetpath.c
index d1c60a0..bc957cc 100644
--- a/Mac/Python/macgetpath.c
+++ b/Mac/Python/macgetpath.c
@@ -189,7 +189,7 @@
 /*
 ** Open/create the Python Preferences file, return the handle
 */
-static short
+short
 PyMac_OpenPrefFile()
 {
 	AliasHandle handle;
@@ -467,4 +467,4 @@
    	if ( prefrh != -1) CloseResFile(prefrh);
 	UseResFile(oldrh);
 }
-#endif /* USE_GUSI */	
+#endif /* USE_GUSI1 */	
