diff --git a/src/p_mobj.c b/src/p_mobj.c
index 0aeabe7f454d9be1bd700cc5ff8389c364c21a40..eeaf547769fdbbae34a11cee3afac385addd690c 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -6765,7 +6765,8 @@ void P_RunShields(void)
 	// run shields
 	for (i = 0; i < numshields; i++)
 	{
-		P_ShieldLook(shields[i], shields[i]->threshold);
+		if (!P_MobjWasRemoved(shields[i]))
+			P_ShieldLook(shields[i], shields[i]->threshold);
 		P_SetTarget(&shields[i], NULL);
 	}
 	numshields = 0;