diff --git a/configure b/configure
index f7d2334..9299296 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 84946 .
+# From configure.in Revision: 85349 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.65 for python 3.2.
 #
@@ -7511,8 +7511,8 @@
 		fi ;;
 	OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
 	Darwin/1.3*)
-		LDSHARED='$(CC) $(LDFLAGS) -bundle'
-		LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle'
+		LDSHARED='$(CC) -bundle'
+		LDCXXSHARED='$(CXX) -bundle'
 		if test "$enable_framework" ; then
 			# Link against the framework. All externals should be defined.
 			BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
@@ -7524,8 +7524,8 @@
 			LDCXXSHARED="$LDCXXSHARED -undefined suppress"
 		fi ;;
 	Darwin/1.4*|Darwin/5.*|Darwin/6.*)
-		LDSHARED='$(CC) $(LDFLAGS) -bundle'
-		LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle'
+		LDSHARED='$(CC) -bundle'
+		LDCXXSHARED='$(CXX) -bundle'
 		if test "$enable_framework" ; then
 			# Link against the framework. All externals should be defined.
 			BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
@@ -7546,12 +7546,12 @@
 			if test "${enable_universalsdk}"; then
 				LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
 			fi
-			LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
-			LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle -undefined dynamic_lookup'
+			LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
+			LDCXXSHARED='$(CXX) -bundle -undefined dynamic_lookup'
 			BLDSHARED="$LDSHARED"
 		else
-			LDSHARED='$(CC) $(LDFLAGS) -bundle'
-			LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle'
+			LDSHARED='$(CC) -bundle'
+			LDCXXSHARED='$(CXX) -bundle'
 			if test "$enable_framework" ; then
 				# Link against the framework. All externals should be defined.
 				BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
@@ -7574,30 +7574,30 @@
 	FreeBSD*)
 		if [ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]
 		then
-			LDSHARED='$(CC) -shared ${LDFLAGS}'
-			LDCXXSHARED='$(CXX) -shared ${LDFLAGS}'
+			LDSHARED='$(CC) -shared'
+			LDCXXSHARED='$(CXX) -shared'
 		else
-			LDSHARED="ld -Bshareable ${LDFLAGS}"
+			LDSHARED="ld -Bshareable"
 		fi;;
 	OpenBSD*)
 		if [ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]
 		then
-				LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
-				LDCXXSHARED='$(CXX) -shared $(CCSHARED) ${LDFLAGS}'
+				LDSHARED='$(CC) -shared $(CCSHARED)'
+				LDCXXSHARED='$(CXX) -shared $(CCSHARED)'
 		else
 				case `uname -r` in
 				[01].* | 2.[0-7] | 2.[0-7].*)
 				   LDSHARED="ld -Bshareable ${LDFLAGS}"
 				   ;;
 				*)
-				   LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
-				   LDCXXSHARED='$(CXX) -shared $(CCSHARED) ${LDFLAGS}'
+				   LDSHARED='$(CC) -shared $(CCSHARED)'
+				   LDCXXSHARED='$(CXX) -shared $(CCSHARED)'
 				   ;;
 				esac
 		fi;;
 	NetBSD*|DragonFly*)
-		LDSHARED="cc -shared ${LDFLAGS}"
-		LDCXXSHARED="c++ -shared ${LDFLAGS}";;
+		LDSHARED="cc -shared"
+		LDCXXSHARED="c++ -shared";;
 	OpenUNIX*|UnixWare*)
 		if test "$GCC" = "yes" ; then
 			LDSHARED='$(CC) -shared'
