diff --git a/devscripts/PREAMBLE.c b/devscripts/PREAMBLE.c
new file mode 100644
index 00000000..90c1d306
--- /dev/null
+++ b/devscripts/PREAMBLE.c
@@ -0,0 +1,15 @@
+ * Dulwich is dual-licensed under the Apache License, Version 2.0 and the GNU
+ * General Public License as public by the Free Software Foundation; version 2.0
+ * or (at your option) any later version. You can redistribute it and/or
+ * modify it under the terms of either of these two licenses.
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * You should have received a copy of the licenses; if not, see
+ * for a copy of the GNU General Public License
+ * and for a copy of the Apache
+ * License, Version 2.0.
diff --git a/devscripts/PREAMBLE.py b/devscripts/PREAMBLE.py
new file mode 100644
index 00000000..f7027871
--- /dev/null
+++ b/devscripts/PREAMBLE.py
@@ -0,0 +1,16 @@
+# Dulwich is dual-licensed under the Apache License, Version 2.0 and the GNU
+# General Public License as public by the Free Software Foundation; version 2.0
+# or (at your option) any later version. You can redistribute it and/or
+# modify it under the terms of either of these two licenses.
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# You should have received a copy of the licenses; if not, see
+# for a copy of the GNU General Public License
+# and for a copy of the Apache
+# License, Version 2.0.
+#
diff --git a/devscripts/replace-preamble.sh b/devscripts/replace-preamble.sh
new file mode 100755
index 00000000..72a75943
--- /dev/null
+++ b/devscripts/replace-preamble.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/zsh
+perl -i -p0e "s{\Q$(cat PREAMBLE.py.old)\E}{$(cat devscripts/PREAMBLE.py)}g" dulwich/**/*.py bin/dul*
+perl -i -p0e "s{\Q$(cat PREAMBLE.c.old)\E}{$(cat devscripts/PREAMBLE.c)}g" dulwich/*.c