diff --git a/Documentation/conf.py b/Documentation/conf.py
index 2186b6da923529f7401dc55f2f0d56ac2f871422..10886a9fb03ead2822cafc09b08c717c2cc23b84 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -15,6 +15,14 @@ sys.path.insert(0, os.path.abspath("./"))
 
 logger = sphinx.util.logging.getLogger("card10/conf.py")
 
+# Hawkmoth does not yet support Sphinx 3
+#
+# See https://github.com/jnikula/hawkmoth/issues/17
+if sphinx.version_info[0] > 2:
+    logger.warning(
+        "Sphinx versions >= 3 are not yet working properly with hawkmoth.  Documentation of C items will probably be broken ..."
+    )
+
 
 # -- Project information -----------------------------------------------------
 
diff --git a/bootloader/build_multi_image.sh b/bootloader/build_multi_image.sh
index b584dfcc5ff92411275f7ced9f9a74c81ce45c0a..c4b799a4c5de071b81e489185597b2a0e16a1b5f 100755
--- a/bootloader/build_multi_image.sh
+++ b/bootloader/build_multi_image.sh
@@ -6,8 +6,12 @@ BIN1="$2"
 BIN2="$3"
 BINOUT="$4"
 
-dd if=/dev/zero ibs=1k count=448 2>/dev/null | LANG=C LC_CTYPE=C LC_ALL=C LC_COLLATE=C tr "\000" "\377" > "$BINOUT"
-dd if="$BIN1" of="$BINOUT" conv=notrunc 2>/dev/null
-dd if="$BIN2" >> "$BINOUT" 2>/dev/null
+if [ "$(stat -c "%s" "${BIN1}")" -gt 458752 ]; then
+    echo "$0: ${BIN1} is too big to fit!" >&2
+    exit 1
+fi
+
+objcopy -I binary -O binary --pad-to=458752 --gap-fill=255 "${BIN1}" "$BINOUT"
+cat "$BIN2" >>"$BINOUT"
 
 "$PYTHON" "$(dirname "$0")/crc_patch.py" "$BINOUT"
diff --git a/meson.build b/meson.build
index 8a0ae60bda2324f27f2cf51b185a73777537017f..403ec564d87c7eda40f4ec6b87291ba64b82a4f5 100644
--- a/meson.build
+++ b/meson.build
@@ -20,6 +20,7 @@ assert(
 add_global_arguments(
   '-Wno-unused-parameter',
   '-Wno-old-style-declaration',
+  '-Wno-char-subscripts',
   meson.get_cross_property('target_defs'),
   language: 'c',
 )