diff --git a/code/ai/aicode.cpp b/code/ai/aicode.cpp
index 84edf66..9a8f27c 100644
--- a/code/ai/aicode.cpp
+++ b/code/ai/aicode.cpp
@@ -8804,9 +8804,13 @@ void ai_chase()
 										firing_range = MIN((swip->max_speed * swip->lifetime * 0.75f), swip->weapon_range);
 									else
 									{
-										float secondary_range_mult = (aip->ai_secondary_range_mult == FLT_MIN)
-											? (Game_skill_level + 1 + aip->ai_class/2)/NUM_SKILL_LEVELS
-											: aip->ai_secondary_range_mult;
+										float secondary_range_mult = aip->ai_secondary_range_mult;
+
+										if (secondary_range_mult == FLT_MIN) {
+											secondary_range_mult = (Game_skill_level + 1.0f + aip->ai_class/2.0f)/NUM_SKILL_LEVELS;
+											// don't let it go above 110% of max range
+											CLAMP(secondary_range_mult, 0.1f, 1.1f);
+										}
 
 										firing_range = MIN((swip->max_speed * swip->lifetime * secondary_range_mult), swip->weapon_range);
 									}
