Use the new macresource module to open the accompanying resource file (if needed).
diff --git a/Mac/Tools/IDE/PythonIDE.py b/Mac/Tools/IDE/PythonIDE.py
index bc22e79..5ebe97a 100644
--- a/Mac/Tools/IDE/PythonIDE.py
+++ b/Mac/Tools/IDE/PythonIDE.py
@@ -13,25 +13,17 @@
 	from Carbon import Qd, QuickDraw
 	Qd.SetCursor(Qd.GetCursor(QuickDraw.watchCursor).data)
 	
-	from Carbon import Res
+	import macresource
 	import sys, os
-	try:
-		Res.GetResource('DITL', 468)
-	except Res.Error:
-		# we're not an applet
-		Res.FSpOpenResFile(os.path.join(sys.exec_prefix, ":Mac:Tools:IDE:PythonIDE.rsrc"), 1)
-		Res.FSpOpenResFile(os.path.join(sys.exec_prefix, ":Mac:Tools:IDE:Widgets.rsrc"), 1)
+	macresource.need('DITL', 468, "PythonIDE.rsrc")
+	widgetresfile = os.path.join(sys.exec_prefix, ":Mac:Tools:IDE:Widgets.rsrc")
+	refno = macresource.need('CURS', 468, widgetresfile)
+	if refno:
+		# We're not a fullblown application
 		ide_path = os.path.join(sys.exec_prefix, ":Mac:Tools:IDE")
 	else:
-		# we're an applet
-		try:
-			Res.GetResource('CURS', 468)
-		except Res.Error:
-			Res.FSpOpenResFile(os.path.join(sys.exec_prefix, ":Mac:Tools:IDE:Widgets.rsrc"), 1)
-			ide_path = os.path.join(sys.exec_prefix, ":Mac:Tools:IDE")
-		else:
-			# we're a full blown applet
-			ide_path = sys.argv[0]
+		# We are a fully frozen application
+		ide_path = sys.argv[0]
 	if ide_path not in sys.path:
 		sys.path.insert(0, ide_path)
 
diff --git a/Mac/Tools/macfreeze/macfreezegui.py b/Mac/Tools/macfreeze/macfreezegui.py
index a834138..7921a29 100644
--- a/Mac/Tools/macfreeze/macfreezegui.py
+++ b/Mac/Tools/macfreeze/macfreezegui.py
@@ -6,6 +6,7 @@
 import os
 import string
 from Carbon import Res
+import macresource
 
 ID_MAINDIALOG=512
 
@@ -54,17 +55,8 @@
 	dirname = os.path.join(dirname, 'build.'+basebase)
 	
 	# Get the dialog, possibly opening the resource file (if needed)
-	try:
-		d = Dlg.GetNewDialog(ID_MAINDIALOG, -1)
-	except Dlg.Error:
-		d = None
-	if d == None:
-		try:
-			Res.FSpOpenResFile('macfreeze.rsrc', 1)
-		except Res.Error:
-			d = None
-		else:
-			d = Dlg.GetNewDialog(ID_MAINDIALOG, -1)
+	macresource.need('DLOG', ID_MAINDIALOG, 'macfreeze.rsrc')
+	d = Dlg.GetNewDialog(ID_MAINDIALOG, -1)
 	if d == None:
 		EasyDialogs.Message("Dialog resource not found or faulty")
 		sys.exit(1)