diff --git a/src/p_user.c b/src/p_user.c
index 83b95c3c8c41755d70f3ac71bfa4b40850471840..9a68e6e9e6f813ba2319124e8a567d13e09b5563 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -2077,7 +2077,7 @@ void P_SpawnThokMobj(player_t *player)
 		mobj = P_SpawnGhostMobj(player->mo); // virtually does everything here for us
 	else if (type == MT_THOKEFFECT) // Thok boom effect for Sonic
 	{
-		mobj = P_SpawnMobjFromMobj(player->mo, 0, 0, FRACUNIT * 24, type);
+		mobj = P_SpawnMobjFromMobj(player->mo, 0, 0, FixedDiv(player->mo->height, player->mo->scale)*3/4, type);
 		mobj->angle = player->mo->angle + ANGLE_90;
 		mobj->fuse = 7;
 		mobj->scale = player->mo->scale / 3;