diff --git a/Mac/scripts/ConfigurePython.py b/Mac/scripts/ConfigurePython.py
index 91e0af0..e49c773 100644
--- a/Mac/scripts/ConfigurePython.py
+++ b/Mac/scripts/ConfigurePython.py
@@ -23,48 +23,6 @@
 ALERT_NONBOOT_ALIAS=2
 
 ppc_goals = [
-## 	("AE.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Ctl.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Dlg.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Evt.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Fm.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Help.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Icn.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Menu.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("List.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Qd.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Res.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Scrap.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Snd.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Sndihooks.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("TE.ppc.slb", "toolboxmodules.ppc.slb"),
-## 	("Win.ppc.slb", "toolboxmodules.ppc.slb"),
-## 
-## 	("Cm.ppc.slb", "qtmodules.ppc.slb"),
-## 	("Qt.ppc.slb", "qtmodules.ppc.slb"),
-
-]
-
-cfm68k_goals = [
-## 	("AE.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Ctl.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Dlg.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Evt.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Fm.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Help.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Icn.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Menu.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("List.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Qd.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Res.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Scrap.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Snd.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Sndihooks.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("TE.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 	("Win.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
-## 
-## 	("Cm.CFM68K.slb", "qtmodules.CFM68K.slb"),
-## 	("Qt.CFM68K.slb", "qtmodules.CFM68K.slb"),
 ]
 
 def gotopluginfolder():
@@ -87,18 +45,7 @@
 		if verbose: print 'imported Res the standard way.'
 		return
 	
-	# We cannot import it. First attempt to load the cfm68k version
-	import imp
-	try:
-		dummy = imp.load_dynamic('Res', 'toolboxmodules.CFM68K.slb')
-	except ImportError, arg:
-		err2 = arg
-		pass
-	else:
-		if verbose:  print 'Loaded Res from toolboxmodules.CFM68K.slb.'
-		return
-		
-	# Ok, try the ppc version
+	# We cannot import it. Try a manual load
 	try:
 		dummy = imp.load_dynamic('Res', 'toolboxmodules.ppc.slb')
 	except ImportError, arg:
@@ -112,7 +59,6 @@
 	print "I cannot import the Res module, nor load it from either of"
 	print "toolboxmodules shared libraries. The errors encountered were:"
 	print "import Res:", err1
-	print "load from toolboxmodules.CFM68K.slb:", err2
 	print "load from toolboxmodules.ppc.slb:", err3
 	sys.exit(1)
 	
@@ -195,28 +141,13 @@
 		else:
 			if verbose:  print '*', dst, 'not created:', src, 'not found'
 	if verbose:  print
-	
-	# Create the CFM68K aliases.
-	didsplash = 0
-	if verbose:  print 'Creating CFM68K aliases...'
-	for dst, src in cfm68k_goals:
-		if src in LibFiles:
-			if not didsplash:
-				MacOS.splash(SPLASH_CFM68K)
-				didsplash = 1
-			macostools.mkalias(src, dst)
-			if verbose:  print ' ', dst, '->', src
-		else:
-			if verbose:  print '*', dst, 'not created:', src, 'not found'
-	if verbose:  print
-			
+				
 	# Create the PythonCore alias(es)
 	if verbose:  print 'Creating PythonCore aliases in Extensions folder...'
 	os.chdir('::')
 	n = 0
 	n = n + mkcorealias('PythonCore', 'PythonCore')
-	n = n + mkcorealias('PythonCorePPC', ':build.macppc.shared:PythonCorePPC')
-	n = n + mkcorealias('PythonCoreCFM68K', ':build.mac68k.shared:PythonCoreCFM68K')
+	n = n + mkcorealias('PythonCoreCarbon', 'PythonCoreCarbon')
 	
 	if verbose and n == 0:
 		sys.exit(1)
