diff --git a/Mac/scripts/BuildApplet.py b/Mac/scripts/BuildApplet.py
index cf90901..c532ea6 100644
--- a/Mac/scripts/BuildApplet.py
+++ b/Mac/scripts/BuildApplet.py
@@ -57,7 +57,7 @@
 	# Ask for source text if not specified in sys.argv[1:]
 	
 	if not sys.argv[1:]:
-		srcfss, ok = macfs.StandardGetFile('TEXT')
+		srcfss, ok = macfs.PromptGetFile('Select Python source file:', 'TEXT')
 		if not ok:
 			return
 		filename = srcfss.as_pathname()
diff --git a/Mac/scripts/EditPythonPrefs.py b/Mac/scripts/EditPythonPrefs.py
index 3e14ff3..2ed6045 100644
--- a/Mac/scripts/EditPythonPrefs.py
+++ b/Mac/scripts/EditPythonPrefs.py
@@ -18,7 +18,7 @@
 # resource IDs in our own resources (dialogs, etc)
 MESSAGE_ID = 256
 
-DIALOG_ID = 131
+DIALOG_ID = 512
 TEXT_ITEM = 1
 OK_ITEM = 2
 CANCEL_ITEM = 3
@@ -85,7 +85,7 @@
 		if n == REVERT_ITEM:
 			return [], pythondir
 		if n == DIR_ITEM:
-			fss, ok = macfs.GetDirectory()
+			fss, ok = macfs.GetDirectory('Select python home folder:')
 			if ok:
 				pythondir = fss
 	tmp = string.splitfields(GetDialogItemText(h), '\r')
diff --git a/Mac/scripts/EditPythonPrefs.rsrc.hqx b/Mac/scripts/EditPythonPrefs.rsrc.hqx
index 9af1d46..abea956 100644
--- a/Mac/scripts/EditPythonPrefs.rsrc.hqx
+++ b/Mac/scripts/EditPythonPrefs.rsrc.hqx
@@ -1,9 +1,9 @@
 (This file may be decompressed with BinHex 4.0)
 
-:&%9NDA43HA4SEfj3FQ9QFbjbFh*M!(*cFQ058d9%!3#3"``k1UJ!N!3"!!!!#ad!
-!!SG!!!"(6B8)&3JD!!8)&"p%E"S%3!k!@FQ%Lm-6VS#$!`k!&Tj&%9NDA43HA4S
-Efj3FQ9QFbjbFh*MC3)!!J"bFh*M8P-#!(*cFQ058d9%!3$rN!3!N"!i3+U,ZiN!
-N!B-1[m4`+KT!4e!%Irc%h!!%#lrmlh5%@B386Dq9@X"!8*%[D'q9@X"!6"4-J&R
+:&%9NDA43HA4SEfj3FQ9QFbjbFh*M!(*cFQ058d9%!3#3"`a'KE-!N!3"!!!!#bN!
+!!ST!!!"(6B8)&3JD!!8)&"p%E"S%3!k!@FQ%Lm-6VS#$!`k!&Tj&%9NDA43HA4S
+Efj3FQ9QFbjbFh*MC3)!!J"bFh*M8P-#!(*cFQ058d9%!3$rN!3!N""MZDU,ZiN!
+N!B-4[m4`+KT!4e!%Irc%h!!%#lrmlh5%@B386Dq9@X"!8*%[D'q9@X"!6"4-J&R
 (N39$!!!('85F!!3,N-9$!!!(f)'F!&J!!%"!LaD9#dZ4,d"!"Xm!@B`*e8q'NU!
 )&-#+!#r!#iL!1d*!J%!3)-Sfc36UGF[$%kk!3P+CfX"!+CA3cS!!!%!!!%!!!!#
 J!!!"%!!!!JJ!!!3%!!!)BJ!!%'%!!#$`J!"!m%!!JIiJ!3(K%!)"!)J%!MK%#!6
@@ -37,15 +37,15 @@
 rph3!!!0rrc`!!r!!!!2%FcrrGh3$Irr!!!!r!!!!2m!c-rrrGhrm!!!!!r!!*!&
 $-c2rrr`!*!%r!!!r`#3"-c-rr!!N!32`!m!m!!!!!c2!*!(r!m!m2rrm-c`!*!(
 $m$r!!!!$-m!N!Rm!*!%c2!!N!N2`!!!$-m!N![m!!$-m!#3#`r!$-m!N!hmc2!!
-N!d2c`#3$r!!N!S"!*!%&3!X!'B"B!'%!!8"!!%!N!D!!*!%kJ!&!*!&5!!B!1`"
-#K!*4@4TG#"8CAKdK`#3"!%@!0B"+J%1"!*25`#3"!%@!"N"+J"6"!C$B@jMC@`!
-N!3"&J"B!5S!dJ348h4KEQ4KFQ3JFf9dG'PZCh-!N!Ei!"J"#J%0""p6C@aPBh3J
-*#K3@94)6diT)'K[E@8JCQpXC'9b,LiZCJ#3"3J!'!!q!3b)6d9ZG'9b)(0jFbj`
-BA4S)'0[EA"[EQ9ZG(-X)'pZC5"`CA)0E'PZC5!S9A0P)#3S8&P85%p1+5"QEh)J
-F(PdD'pZ)'K[E@80CQpXC'9b+6Td!!!"!!!!#ad!!!SG!!!"(3$Aq$35[!!!!"`"
-$J!,3Nj%6!!!!'**3diM!!!!EP0*@N8!!!"k4P*&4J!!!)CTBh-M!!!!NQPME$J!
-!!#HD@0c1!!!!+TTBh-d!!!!YQPME$3!!!$#8&P8C!!!!-j%6%p(!!!!fN4*9%`!
-!!$Q!)$rr`!!!4d!N!3",2rr!*!)rj!%!!!""!#3"B$rr`!!!4)!N!3",2rr!!!"
-23#3"!%Xrrm!!!'"!0Ij,!%Xrrm!!!@&!0Ii1!%Xrrm!!!D*!0IkG!%Xrrm!!!F0
-!0IE8!#3"JN4!*!&Jrrr!!!*&J#3"B$rr`!!#5m!N!316hGZCA)JFQ9cEh9bBf@M
-b`:
+N!d2c`#3$r!!N!S"!*!%&3!L!'J"@J'I!!%"!!%!N!8#!*!&pJ!&!*!&-J!8!0-"
+*K!*4@4TG#"8CAKdK`#3"!%B!2!",!%X"!*25`#3"!%B!"3",!"1"!C$B@jMC@`!
+N!AF!"3!m!%U""e5C@e[GQ8JFhPc,R"KG'JJF(*PCL"KEQ3JCAKTG!#3"[S!&!%-
+!5X%(e0PE'9MG#!N+&"C9%K26LNJD'pYC5"QEfaNCA)Z,LjQ!*!&#J!8!#i"*SK2
+4@jdCA)JFhPc,R"KG'JJBfpYF'pZC@jdFb`JEfjP)("PFL"XD@jP$5K9Ff8J*#K3
+@94)6diT)'C[FL"`HA4SEfiJD'pYC5"QEfaNCA)T1J!!!!%!!!!,+3!!#LN!!!%G
+!-f9T"&%!!!!(!%1!!Y#6N4-!!!!BNP$6L-!!!"Z8dPD43!!!(T'8N9'!!!!KQPM
+Fb-!!!#5D@0X1!!!!*jTBh-i!!!!UQPMFc3!!!#fD@0X0!!!!-*3@94N!!!!cN4-
+6dF!!!$D4%P86!!!!1B!J2rr!!!"(3#3"!%Xrrm!N!MrN!3!!!%%!*!&J2rr!!!"
+%J#3"!%Xrrm!!!%p!*!%!5crr`!!!B%!N!3",2rr!!!&K3#3"!%Xrrm!!!D*!*!%
+!5crr`!!"`d!N!S*%3#3"!)!rrm!!!N@!-f6G!)!rrm!!!N[!-f8N!!16hGZCA)J
+FQ9cEh9bBfAP)!:
diff --git a/Mac/scripts/PackLibDir.py b/Mac/scripts/PackLibDir.py
index cdda87d..e6cd656 100644
--- a/Mac/scripts/PackLibDir.py
+++ b/Mac/scripts/PackLibDir.py
@@ -77,14 +77,10 @@
 if __name__ == '__main__':
 	args = sys.argv[1:]
 	if not args:
-		ifss, ok = macfs.StandardGetFile('PYC ')
-		if ok:
-			args = [ifss.as_pathname()]
-		else:
-			ifss, ok = macfs.GetDirectory()
-			if not ok:
-				sys.exit(0)
-			args = [ifss.as_pathname()]
+		ifss, ok = macfs.GetDirectory('Select root of tree to pack:')
+		if not ok:
+			sys.exit(0)
+		args = [ifss.as_pathname()]
 	for ifn in args:
 		ofss, ok = macfs.StandardPutFile('Output for '+os.path.split(ifn)[1])
 		if not ok:
diff --git a/Mac/scripts/RunLibScript.py b/Mac/scripts/RunLibScript.py
index 36787d9..36e9487 100644
--- a/Mac/scripts/RunLibScript.py
+++ b/Mac/scripts/RunLibScript.py
@@ -9,7 +9,7 @@
 import Dlg
 import macfs
 
-DIALOG_ID = 140
+DIALOG_ID = 512
 OK = 1
 CANCEL = 2
 SCRIPTNAME=3
diff --git a/Mac/scripts/RunLibScript.rsrc.hqx b/Mac/scripts/RunLibScript.rsrc.hqx
index 46780ad..19bed33 100644
--- a/Mac/scripts/RunLibScript.rsrc.hqx
+++ b/Mac/scripts/RunLibScript.rsrc.hqx
@@ -2,7 +2,7 @@
 
 :%9*eENaTBP0MFQP`G#jbFh*M!(*cFQ058d9%!3#3"`cLBVi!N!3"!!!!#m8!!!V&
 !!!"(6B8)&3JD!!8)&"p%E"S%3!k!@FQ%Lm-6VS#$!`k!&Tj%9*eENaTBP0MFQP`
-G#jbFh*M!J!!!(*cFQ058d9%!3!!!(*cFQ058d9%!3!!)!!3!*!5USZlL3#3"JcL
+G#jbFh*M!J!#!(*cFQ058d9%!3!#!(*cFQ058d9%!3!!)!!3!*!5USZlL3#3"JcL
 ra(!U'N"(8!4rr-6F!!3,[rc[G)4CK"40Vj9D`%"3N5pSEj9D`%"-&%b!@FH4"8-
 !!!FC4*`!"!Z3a8-!!!IBJC`!@!!!3%#,&T8,5j%[3%!'c`"CM!R96iD5S!J8`)S
 !,m!,L)!l3N#!3"!JbME0"1Tebm-6VS"#8TRD`%!TPG$1J!!!3!!!3!!!!+!!!!%
@@ -37,8 +37,8 @@
 !2c!!*!%$-m!r`m!!!99!2c!!*!%c2!!$`m&!!89!2c!!!!!$-m!!!m!99"999$m
 `!!!!-c`!!!2!&&3!!!!r-!!!!c2!!!!$`9993!!!2c!!!$-m!!!!!m!N!Em`!!-
 c`#3"!m!N!Em`!$-m!#3"!rrN!Em`!c2!*!*r-c-c-$-m!#3#3r-N!62!*!,r!!!
-c2!!N!X2`!c2!*!0r-c`!*!0$mm!N!r`!*!+!3#3""8!3!!D!4)"[J!&!3!"!*!'
-J!!!!!'5!!m!N!@h!9S!b`'8"!05G@i!N!Dh!43!b`&1"!C$B@jMC@`!N!8I!+)!
+c2!!N!X2`!c2!*!0r-c`!*!0$mm!N!r`!*!+!3#3""8!3!!D!4)"[J!&!3!"!*!&
+!J#3"!'5!!m!N!@h!9S!b`'8"!05G@i!N!Dh!43!b`&1"!C$B@jMC@`!N!8I!+)!
 -3'3!"!!N!Bj!+)!6!'3!"!!N!C@!28!D3&F"JY9Ff8JBfpZFfpXCGF!N!9@!+!!
 DJ$X"JP6C@aPBh3Z,LkE!*!&E`$f!))"A3B,9A0P)'0[ER0[E'AA!*!&EJ#J!))!
 l!B*8f9XC@0d,LiZe`#3"BF!S3#E!1d%#90PE'9MG#iZ,L!!N!@K!+%!XJ&i"4T%
@@ -46,9 +46,9 @@
 13!+!%`!QiJ+3A*RG@ePER4c1J#3"9J!#J"S!*U)"R0dC'PZ1J#3"A!!#J#"!*U)
 "h0dC'peG$TP!*!&L3!+!*N!QiJ5GfpbDfPZCb"NDA*PBh4[FRNk!*!&"J"&!"B"
 6)JM8R9Z)'%JF(PdD'pZ)'e[C(9XC5"KFb"YB@PZ)("bEfGbB@d!!!!"!!!!#m8!
-!!V&!!!"(3$Aqp35AJ!!!"`"$J!,3Nj%6!!!!'**3diM!!!!EP0*@N8!!!"k4P*&
+!!V&!!!"(3$0Nh!44!!!!"`"$J!,3Nj%6!!!!'**3diM!!!!EP0*@N8!!!"k4P*&
 4J!!!)CTBh-M!!!!NQPME$J!!!#HD@0c1!!!!+TTBh-d!!!!YQPME$3!!!$#8&P8
 C3!!!-j%6%p(!!!!fN4*9%`!!!$Q!)$rr`!!!4d!N!3",2rr!*!)rj!%!!!""!#3
 "B$rr`!!!4)!N!3",2rr!!!"23#3"!%Xrrm!!!'"!*!%!5crr`!!"B8!N!3",2rr
-!!!'L3#3"!%Xrrm!!!F0!*!+#4%!N!@-rrm!!!N@!*!&J2rr!!!*,`$AqR316hGZ
-CA)JFQ9cEh9bBf@X%!:
+!!!'L3#3"!%Xrrm!!!F0!*!+#4%!N!3#!2rr!!!*&J$0P-`#!2rr!!!*,`$0Nq!1
+6hGZCA)JFQ9cEh9bBfA2"!:
diff --git a/Mac/scripts/fixfiletypes.py b/Mac/scripts/fixfiletypes.py
index 5fdd12f..1d1b115 100644
--- a/Mac/scripts/fixfiletypes.py
+++ b/Mac/scripts/fixfiletypes.py
@@ -39,7 +39,7 @@
 			walktree(os.path.join(name, f), change)
 			
 def run(change):
-	fss, ok = macfs.GetDirectory()
+	fss, ok = macfs.GetDirectory('Folder to search:')
 	if not ok:
 		sys.exit(0)
 	walktree(fss.as_pathname(), change)
