diff --git a/source/games/duke/src/hudweapon_d.cpp b/source/games/duke/src/hudweapon_d.cpp
index f6d067849..73def1142 100644
--- a/source/games/duke/src/hudweapon_d.cpp
+++ b/source/games/duke/src/hudweapon_d.cpp
@@ -336,7 +336,7 @@ void displayweapon_d(int snum, double interpfrac)
 		{
 			const int pin = ((gs.displayflags & DUKE3D_NO_WIDESCREEN_PINNING)) ? 0 : RS_ALIGN_R;
 
-			offsets -= BobVal(768 + (kickback_pic * 128.)) * 8;
+			offsets -= BobVal(512 + (min(kickback_pic, 16.) * 128.)) * 8;
 
 			if (*kb > 0)
 			{