diff --git a/src/p_user.c b/src/p_user.c
index 7a80031b8c57db1e2ced3a64a279706b0711d1d4..a3264b6756fc1d7d04e611271c002a7cd8184681 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -5962,6 +5962,8 @@ static void P_3dMovement(player_t *player)
 	// When sliding, don't allow forward/back
 	if (player->pflags & PF_SLIDING)
 		cmd->forwardmove = 0;
+	else if (onground && player->mo->state == states+S_PLAY_PAIN)
+		P_SetPlayerMobjState(player->mo, S_PLAY_WALK);
 
 	player->aiming = cmd->aiming<<FRACBITS;