diff --git a/src/cocoa/zdoom-info.plist b/src/cocoa/zdoom-info.plist
index 8371b0555b..2a1911cdfa 100644
--- a/src/cocoa/zdoom-info.plist
+++ b/src/cocoa/zdoom-info.plist
@@ -5,7 +5,7 @@
CFBundleDevelopmentRegion
English
CFBundleExecutable
- ${EXECUTABLE_NAME}
+ ${MACOSX_BUNDLE_EXECUTABLE_NAME}
CFBundleIconFile
zdoom.icns
CFBundleIdentifier
@@ -23,7 +23,7 @@
LSApplicationCategoryType
public.app-category.action-games
LSMinimumSystemVersion
- ${MACOSX_DEPLOYMENT_TARGET}
+ 10.4
CFBundleDocumentTypes
diff --git a/src/g_shared/a_armor.cpp b/src/g_shared/a_armor.cpp
index a745197c2c..0f343e523f 100644
--- a/src/g_shared/a_armor.cpp
+++ b/src/g_shared/a_armor.cpp
@@ -516,7 +516,14 @@ void AHexenArmor::AbsorbDamage (int damage, FName damageType, int &newdamage)
// with the dragon skin bracers.
if (damage < 10000)
{
+#if __APPLE__ && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ == 1
+ // -O1 optimizer bug work around. Only needed for
+ // GCC 4.2.1 on OS X for 10.4/10.5 tools compatibility.
+ volatile fixed_t tmp = 300;
+ Slots[i] -= Scale (damage, SlotsIncrement[i], tmp);
+#else
Slots[i] -= Scale (damage, SlotsIncrement[i], 300);
+#endif
if (Slots[i] < 2*FRACUNIT)
{
Slots[i] = 0;