diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 7bc12ba75db5ceb77e493d32aa9e5f273d9f5415..ac4c896bf29f2f52a87ce67cefa5d4b8c5cabb7a 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -5128,7 +5128,7 @@ static void HWR_ProjectSprite(mobj_t *thing)
 	else
 	{
 		// choose a different rotation based on player view
-		ang = R_PointToAngle (thing->x, thing->y) - thing->angle;
+		ang = R_PointToAngle (thing->x, thing->y) - (thing->player ? thing->player->drawangle : thing->angle);
 
 		if ((sprframe->rotate & SRF_RIGHT) && (ang < ANGLE_180)) // See from right
 			rot = 6; // F7 slot
diff --git a/src/hardware/hw_md2.c b/src/hardware/hw_md2.c
index 7edf02db061f02eb2d7b8fd917b0e004df567bdb..29a3e72db688ff61a4c27c5051de8c4c7fc044dd 100644
--- a/src/hardware/hw_md2.c
+++ b/src/hardware/hw_md2.c
@@ -1496,7 +1496,7 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
 
 		if (sprframe->rotate)
 		{
-			const fixed_t anglef = AngleFixed(spr->mobj->angle);
+			const fixed_t anglef = AngleFixed((spr->mobj->player ? spr->mobj->player->drawangle : spr->mobj->angle));
 			p.angley = FIXED_TO_FLOAT(anglef);
 		}
 		else