diff --git a/src/p_enemy.c b/src/p_enemy.c
index 49907bdccaee23d3c8da53ffd1f75512b1720737..0cada7f9fdf92aea02914e788e40791c8f94c16b 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -5297,7 +5297,7 @@ void A_OverlayThink(mobj_t *actor)
 		actor->z = actor->target->z + actor->target->height - mobjinfo[actor->type].height  - ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT;
 	else
 		actor->z = actor->target->z + ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT;
-	actor->angle = actor->target->angle + actor->movedir;
+	actor->angle = (actor->target->player ? actor->target->player->drawangle : actor->target->angle) + actor->movedir;
 	actor->eflags = actor->target->eflags;
 
 	actor->momx = actor->target->momx;
diff --git a/src/p_mobj.c b/src/p_mobj.c
index a1bb2d6ffc617ff4712b2f1cae732fdd6dba42e3..41377373ddbe5106c10524a0a1d0ec4c992cbcfe 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -6837,7 +6837,7 @@ void P_RunOverlays(void)
 
 		mo->eflags = (mo->eflags & ~MFE_VERTICALFLIP) | (mo->target->eflags & MFE_VERTICALFLIP);
 		mo->scale = mo->destscale = mo->target->scale;
-		mo->angle = mo->target->angle + mo->movedir;
+		mo->angle = (mo->target->player ? mo->target->player->drawangle : mo->target->angle) + mo->movedir;
 
 		if (!(mo->state->frame & FF_ANIMATE))
 			zoffs = FixedMul(((signed)mo->state->var2)*FRACUNIT, mo->scale);