Index: code/weapon/shockwave.cpp
===================================================================
--- code/weapon/shockwave.cpp	(revision 9696)
+++ code/weapon/shockwave.cpp	(working copy)
@@ -356,12 +356,17 @@
 
 		// If this shockwave hit the player, play shockwave impact sound
 		if ( objp == Player_obj ) {
-			float vol_scale;
-			if (sw->weapon_info_index >= 0 && Weapon_info[sw->weapon_info_index].damage != 0.0f) {
-				vol_scale = MAX(0.4f, damage/Weapon_info[sw->weapon_info_index].damage);
+			float full_damage, vol_scale;
+			if (sw->weapon_info_index >= 0) {
+				full_damage = Weapon_info[sw->weapon_info_index].damage;
 			} else {
-				vol_scale = 0.4f;
+				full_damage = sw->damage;
 			}
+			if (full_damage != 0.0f) {
+				vol_scale = MAX(0.4f, damage/full_damage);
+			} else {
+				vol_scale = 1.0f;
+			}
 			snd_play( &Snds[SND_SHOCKWAVE_IMPACT], 0.0f, vol_scale );
 		}
 
