diff --git a/Mac/scripts/fullbuild.py b/Mac/scripts/fullbuild.py
index 76415a9..054f40e 100644
--- a/Mac/scripts/fullbuild.py
+++ b/Mac/scripts/fullbuild.py
@@ -9,6 +9,8 @@
 # NOTE: You should proably make a copy of python with which to execute this
 # script, rebuilding running programs does not work...
 
+CARBON_ONLY = 1
+
 MACBUILDNO=":Mac:Include:macbuildno.h"
 
 import os
@@ -24,15 +26,7 @@
 import aetools
 from Carbon import AppleEvents
 
-OLDAESUPPORT = 0
-
-if OLDAESUPPORT:
-	from Metrowerks_Shell_Suite import Metrowerks_Shell_Suite
-	from CodeWarrior_suite import CodeWarrior_suite
-	from Metrowerks_Standard_Suite import Metrowerks_Standard_Suite
-	from Required_Suite import Required_Suite
-else:
-	import CodeWarrior
+import CodeWarrior
 
 from Carbon import Res
 from Carbon import Dlg
@@ -74,18 +68,24 @@
 
 N_BUTTONS=27
 
-if OLDAESUPPORT:
-	class MwShell(Metrowerks_Shell_Suite, CodeWarrior_suite, Metrowerks_Standard_Suite,
-					Required_Suite, aetools.TalkTo):
-		pass
+if CARBON_ONLY:
+	BUTTONS_DISABLE = [
+		I_PPC_EXTLIBS,
+		I_PPC_CORE,
+		I_PPC_PLUGINS,
+		I_PPC_EXTENSIONS,
+		I_INTERPRETER,
+		I_PPC_FULL,
+		I_PPC_SMALL,
+	]
 else:
-	MwShell = CodeWarrior.CodeWarrior
-
+	BUTTONS_DISABLE = []
+	
 RUNNING=[]
 
 def buildmwproject(top, creator, projects):
 	"""Build projects with an MW compiler"""
-	mgr = MwShell(creator, start=1)
+	mgr = CodeWarrior.CodeWarrior(creator, start=1)
 	mgr.send_timeout = AppleEvents.kNoTimeOut
 	
 	failed = []
@@ -177,6 +177,9 @@
 	d.SetDialogDefaultItem(I_OK)
 	d.SetDialogCancelItem(I_CANCEL)
 	results = [0]*N_BUTTONS
+	for n in BUTTONS_DISABLE:
+		ctl = d.GetDialogItemAsControl(n)
+		ctl.HideControl()
 	while 1:
 		n = Dlg.ModalDialog(None)
 		if n == I_OK:
diff --git a/Mac/scripts/genpluginprojects.py b/Mac/scripts/genpluginprojects.py
index 3e2e443..a2a8ada 100644
--- a/Mac/scripts/genpluginprojects.py
+++ b/Mac/scripts/genpluginprojects.py
@@ -3,6 +3,8 @@
 import os
 import string
 
+CARBON_ONLY=1
+
 PYTHONDIR = sys.prefix
 PROJECTDIR = os.path.join(PYTHONDIR, ":Mac:Build")
 MODULEDIRS = [	# Relative to projectdirs
@@ -38,6 +40,8 @@
 		extraexportsymbols=[], outputdir=":::Lib:lib-dynload",
 		libraryflags=None, stdlibraryflags=None, prefixname=None,
 		initialize=None):
+	if CARBON_ONLY and architecture == "ppc":
+		return
 	if architecture == "all":
 		# For the time being we generate two project files. Not as nice as
 		# a single multitarget project, but easier to implement for now.
@@ -82,7 +86,7 @@
 	if prefixname:
 		pass
 	elif architecture == "carbon":
-		prefixname = "mwerks_carbonplugin_config.h"
+		prefixname = "mwerks_shcarbon_pch"
 	else:
 		prefixname = "mwerks_plugin_config.h"
 	dict = {
@@ -112,12 +116,12 @@
 	genpluginproject("ppc", "pyexpat", 
 		sources=["pyexpat.c", "xmlparse.c", "xmlrole.c", "xmltok.c"],
 		extradirs=[":::Modules:expat"],
-		prefixname="mwerks_pyexpat_config.h"
+		prefixname="mwerks_shared_config.h"
 		)
 	genpluginproject("carbon", "pyexpat", 
 		sources=["pyexpat.c", "xmlparse.c", "xmlrole.c", "xmltok.c"],
 		extradirs=[":::Modules:expat"],
-		prefixname="mwerks_carbonpyexpat_config.h"
+		prefixname="mwerks_shcarbon_config.h"
 		)
 	genpluginproject("all", "zlib", 
 		libraries=["zlib.ppc.Lib"], 
@@ -194,7 +198,7 @@
 	genpluginproject("ppc", "_Win", libraries=["CarbonAccessors.o", "WindowsLib", "AppearanceLib"],
 			libraryflags="Debug, WeakImport", outputdir="::Lib:Carbon")
 	# Carbon Only?
-	genpluginproject("carbon", "_CF", outputdir="::Lib:Carbon")
+	genpluginproject("carbon", "_CF", sources=[":cf:_CFmodule.c", ":cf:pycfbridge.c"], outputdir="::Lib:Carbon")
 	genpluginproject("carbon", "_CarbonEvt", outputdir="::Lib:Carbon")
 	genpluginproject("carbon", "hfsplus")
 	
