diff --git i/config/python.m4 w/config/python.m4
index baa7136..d051203 100644
--- i/config/python.m4
+++ w/config/python.m4
@@ -79,6 +79,15 @@ fi
 
 python_additional_libs=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBS','LIBC','LIBM','BASEMODLIBS'))))"`
 
+case $host_os in darwin*)
+  python_prefix=`${PYTHON} -c "import distutils.sysconfig; print(distutils.sysconfig.PREFIX)"`
+  if test -f "$python_prefix/Python"; then
+    python_libspec='-framework Python'
+    python_additional_libs=
+  fi
+  ;;
+esac
+
 AC_MSG_RESULT([${python_libspec} ${python_additional_libs}])
 
 AC_SUBST(python_libdir)[]dnl
diff --git i/configure w/configure
index 60db1f7..5859b51 100755
--- i/configure
+++ w/configure
@@ -7387,6 +7387,15 @@ fi
 
 python_additional_libs=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LIBS','LIBC','LIBM','BASEMODLIBS'))))"`
 
+case $host_os in darwin*)
+  python_prefix=`${PYTHON} -c "import distutils.sysconfig; print(distutils.sysconfig.PREFIX)"`
+  if test -f "$python_prefix/Python"; then
+    python_libspec='-framework Python'
+    python_additional_libs=
+  fi
+  ;;
+esac
+
 { $as_echo "$as_me:$LINENO: result: ${python_libspec} ${python_additional_libs}" >&5
 $as_echo "${python_libspec} ${python_additional_libs}" >&6; }
 
diff --git i/src/pl/plpython/Makefile w/src/pl/plpython/Makefile
index af6b459..e6a72fb 100644
--- i/src/pl/plpython/Makefile
+++ w/src/pl/plpython/Makefile
@@ -23,9 +23,9 @@ endif
 
 # Darwin (OS X) has its own ideas about how to do this.
 ifeq ($(PORTNAME), darwin)
+ifneq(,$(filter -framework,$(python_libspec)))
 shared_libpython = yes
-override python_libspec = -framework Python
-override python_additional_libs =
+endif
 endif
 
 # If we don't have a shared library and the platform doesn't allow it
