diff --git a/client.mk b/client.mk
index 3fbb9fd0a110e0f03140159cf1c5167e95538bcb..1d36a897a657811731f9b3bcfc55e0be93986f79 100644
--- a/client.mk
+++ b/client.mk
@@ -310,7 +310,7 @@ EXTRA_CONFIG_DEPS := \
 
 $(CONFIGURES): %: %.in $(EXTRA_CONFIG_DEPS)
 	@echo Generating $@
-	sed '1,/^divert/d' $< > $@
+	cp -f $< $@
 	chmod +x $@
 
 CONFIG_STATUS_DEPS := \
diff --git a/configure.in b/configure.in
index 418f4f799362308bbec7345fed4f86c3845eb180..5b023ef9e6c143bfba91711443e485a7d1f6d237 100644
--- a/configure.in
+++ b/configure.in
@@ -1,20 +1,21 @@
-dnl This Source Code Form is subject to the terms of the Mozilla Public
-dnl License, v. 2.0. If a copy of the MPL was not distributed with this
-dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
-dnl
-dnl Welcome to the new world of configure. We're working on moving to a
-dnl python based configure. In the meanwhile, remains of the old autoconf
-dnl based configure is in old-configure.in.
-dnl If you need to add something, please come talk to the build system
-dnl peers for now.
-dnl
-dnl Because adding a configure file in the tree is going to conflict with
-dnl existing configure files in people's (and automation) work trees, and
-dnl because some automation jobs are still running autoconf and configure
-dnl "manually", this file is actually an m4 file that is processed by
-dnl autoconf, but doesn't call any autoconf macros. The `divert` line
-dnl below ensures the script that follows is output by autoconf.
-divert(0)dnl
+#!/bin/sh
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Welcome to the new world of configure. We're working on moving to a
+# python based configure. In the meanwhile, remains of the old autoconf
+# based configure is in old-configure.in.
+# If you need to add something, please come talk to the build system
+# peers for now.
+#
+# Because adding a configure file in the tree is going to conflict with
+# existing configure files in people's (and automation) work trees, and
+# because some automation jobs are still running autoconf and configure
+# "manually", this file is actually an m4 file that is processed by
+# autoconf, but doesn't call any autoconf macros. The `divert` line
+# below ensures the script that follows is output by autoconf.
+: "divert(0)dnl"
 #!/bin/sh
 
 SRCDIR=$(dirname $0)
diff --git a/js/src/configure.in b/js/src/configure.in
index b97fa11d2d90515935625f2ad6bff5d58332479f..3b3a39af36ea3fee92c19b0982d23a2c83d643cf 100644
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -1,20 +1,21 @@
-dnl This Source Code Form is subject to the terms of the Mozilla Public
-dnl License, v. 2.0. If a copy of the MPL was not distributed with this
-dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
-dnl
-dnl Welcome to the new world of configure. We're working on moving to a
-dnl python based configure. In the meanwhile, remains of the old autoconf
-dnl based configure is in old-configure.in.
-dnl If you need to add something, please come talk to the build system
-dnl peers for now.
-dnl
-dnl Because adding a configure file in the tree is going to conflict with
-dnl existing configure files in people's (and automation) work trees, and
-dnl because some automation jobs are still running autoconf and configure
-dnl "manually", this file is actually an m4 file that is processed by
-dnl autoconf, but doesn't call any autoconf macros. The `divert` line
-dnl below ensures the script that follows is output by autoconf.
-divert(0)dnl
+#!/bin/sh
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Welcome to the new world of configure. We're working on moving to a
+# python based configure. In the meanwhile, remains of the old autoconf
+# based configure is in old-configure.in.
+# If you need to add something, please come talk to the build system
+# peers for now.
+#
+# Because adding a configure file in the tree is going to conflict with
+# existing configure files in people's (and automation) work trees, and
+# because some automation jobs are still running autoconf and configure
+# "manually", this file is actually an m4 file that is processed by
+# autoconf, but doesn't call any autoconf macros. The `divert` line
+# below ensures the script that follows is output by autoconf.
+: "divert(0)dnl"
 #!/bin/sh
 
 SRCDIR=$(dirname $0)