diff --git a/configure.in b/configure.in
index d64174fe7db67b5080b4d6276c3a5a7a449b65aa..46560e9b2f9e0efacf3ca371b267a8ec2a29a47e 100644
--- a/configure.in
+++ b/configure.in
@@ -793,8 +793,9 @@ then
 			# Link against the framework. All externals should be defined.
 			LDSHARED="$LDSHARED "'-framework $(PYTHONFRAMEWORK)'
 		else
-			# No framework. Ignore undefined symbols, assuming they come from Python
-			LDSHARED="$LDSHARED -flat_namespace -undefined suppress"
+			# No framework, use the Python app as bundle-loader
+			BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
+			LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/$(PYTHON)'
 		fi ;;
 	Linux*|GNU*) LDSHARED="gcc -shared";;
 	dgux*) LDSHARED="ld -G";;
diff --git a/setup.py b/setup.py
index 7f34c32b3bd5c3ee16c6220ad2ddb29da25d26ac..cc423c58ba62e01998d5b3724a3e45af20373a4d 100644
--- a/setup.py
+++ b/setup.py
@@ -604,7 +604,8 @@ class PyBuildExt(build_ext):
             # available here. This Makefile variable is also what the install
             # procedure triggers on.
             frameworkdir = sysconfig.get_config_var('PYTHONFRAMEWORKDIR')
-            exts.append( Extension('gestalt', ['gestaltmodule.c']) )
+            exts.append( Extension('gestalt', ['gestaltmodule.c'],
+            		extra_link_args=['-framework', 'Carbon']) )
             exts.append( Extension('MacOS', ['macosmodule.c'],
                         extra_link_args=['-framework', 'Carbon']) )
             exts.append( Extension('icglue', ['icgluemodule.c'],
@@ -613,8 +614,10 @@ class PyBuildExt(build_ext):
                                    ['macfsmodule.c',
                                     '../Python/getapplbycreator.c'],
                         extra_link_args=['-framework', 'Carbon']) )
-            exts.append( Extension('_CF', ['cf/_CFmodule.c']) )
-            exts.append( Extension('_Res', ['res/_Resmodule.c']) )
+            exts.append( Extension('_CF', ['cf/_CFmodule.c'],
+                        extra_link_args=['-framework', 'CoreFoundation']) )
+            exts.append( Extension('_Res', ['res/_Resmodule.c'],
+                        extra_link_args=['-framework', 'Carbon']) )
             exts.append( Extension('_Snd', ['snd/_Sndmodule.c'],
                         extra_link_args=['-framework', 'Carbon']) )
             if frameworkdir: