diff --git a/src/p_mobj.c b/src/p_mobj.c
index 5e85e4de22ec458d8bbafd3352267ba1f5554b85..eec959b62f8883118bbcbceee49d3d265a17319f 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -533,7 +533,7 @@ boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state)
 			mobj->sprite = st->sprite;
 			mobj->frame = st->frame;
 			if ((st->frame & (FF_ANIMATE|FF_MIDDLESTARTCHANCE)) == (FF_ANIMATE|FF_MIDDLESTARTCHANCE))
-				mobj->frame += (st->var1)/2;
+				mobj->frame += P_RandomKey(st->var1);
 		}
 
 		// Modified handling.
@@ -648,7 +648,7 @@ boolean P_SetMobjState(mobj_t *mobj, statenum_t state)
 			mobj->sprite = st->sprite;
 			mobj->frame = st->frame;
 			if ((st->frame & (FF_ANIMATE|FF_MIDDLESTARTCHANCE)) == (FF_ANIMATE|FF_MIDDLESTARTCHANCE))
-				mobj->frame += (st->var1)/2;
+				mobj->frame += P_RandomKey(st->var1);
 		}
 
 		// Modified handling.