diff -Naur gcc-4.6.0~/configure gcc-4.6.0/configure
--- gcc-4.6.0~/configure	2011-03-16 18:27:36.000000000 +0000
+++ gcc-4.6.0/configure	2011-03-29 18:55:31.113624850 +0100
@@ -2801,6 +2801,16 @@
 # Noconfigdirs are removed loudly.
 noconfigdirs=""
 
+# Make sure we don't let target-libiberty be added if we didn't want it.
+if test x$with_target_libiberty = xno ; then
+  noconfigdirs="$noconfigdirs target-libiberty"
+fi
+
+# Make sure we don't let target-zlib be added if we didn't want it.
+if test x$with_target_zlib = xno ; then
+  noconfigdirs="$noconfigdirs target-zlib"
+fi
+
 use_gnu_ld=
 # Make sure we don't let GNU ld be added if we didn't want it.
 if test x$with_gnu_ld = xno ; then
diff -Naur gcc-4.6.0~/configure.ac gcc-4.6.0/configure.ac
--- gcc-4.6.0~/configure.ac	2011-03-16 18:27:36.000000000 +0000
+++ gcc-4.6.0/configure.ac	2011-03-29 18:55:31.110291541 +0100
@@ -262,6 +262,16 @@
 # Noconfigdirs are removed loudly.
 noconfigdirs=""
 
+# Make sure we don't let target-libiberty be added if we didn't want it.
+if test x$with_target_libiberty = xno ; then
+  noconfigdirs="$noconfigdirs target-libiberty"
+fi
+
+# Make sure we don't let target-zlib be added if we didn't want it.
+if test x$with_target_zlib = xno ; then
+  noconfigdirs="$noconfigdirs target-zlib"
+fi
+
 use_gnu_ld=
 # Make sure we don't let GNU ld be added if we didn't want it.
 if test x$with_gnu_ld = xno ; then
