diff --git a/osx/makebundle.sh b/osx/makebundle.sh
index 66381ef7..377769b6 100755
--- a/osx/makebundle.sh
+++ b/osx/makebundle.sh
@@ -30,6 +30,27 @@ fi
rm -rf "$APP_NAME"
rm -f ./*.app.zip
+# Enchant packaging changed between releases/package managers:
+# - some installs provide share/enchant
+# - others provide share/enchant-2
+# - some have no share-level config dir at all
+# Keep the bundle definition in sync with what's actually available so
+# gtk-mac-bundler doesn't fail on a missing source path.
+ENCHANT_PREFIX_PATH="${ENCHANT_PREFIX:-}"
+if [ -z "$ENCHANT_PREFIX_PATH" ] && command -v brew >/dev/null 2>&1; then
+ ENCHANT_PREFIX_PATH="$(brew --prefix enchant 2>/dev/null || true)"
+fi
+
+if [ -n "$ENCHANT_PREFIX_PATH" ]; then
+ if [ -d "$ENCHANT_PREFIX_PATH/share/enchant" ]; then
+ perl -0pi -e 's|(\s*)\$\{prefix:enchant\}/share/enchant(?:-2)?(\s*)|$1\$\{prefix:enchant\}/share/enchant$2|s' "$BUNDLE_DEF"
+ elif [ -d "$ENCHANT_PREFIX_PATH/share/enchant-2" ]; then
+ perl -0pi -e 's|(\s*)\$\{prefix:enchant\}/share/enchant(?:-2)?(\s*)|$1\$\{prefix:enchant\}/share/enchant-2$2|s' "$BUNDLE_DEF"
+ else
+ perl -0pi -e 's|\n\s*\s*\$\{prefix:enchant\}/share/enchant(?:-2)?\s*\n|\n|s' "$BUNDLE_DEF"
+ fi
+fi
+
# Keep Info.plist generation deterministic by always rendering from template
# using a single, explicit version source.