diff --git a/src/p_map.c b/src/p_map.c
index b18f0d1c16c5c5efb9207e80da80b91f1dceca5b..d4083cfd7f315fc3d4450d68950ad26c66a3c03b 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -1279,7 +1279,8 @@ static unsigned PIT_DoCheckThing(mobj_t *thing)
 		if (tmthing->type != MT_SHELL && tmthing->target && tmthing->target->type == thing->type)
 		{
 			// Don't hit yourself, and if a player, don't hit bots
-			if (thing->player && tmthing->target->player && !P_CanPlayerHurtPlayer(thing->player, tmthing, tmthing->target->player, 0))
+			if (thing == tmthing->target
+				|| (thing->player && tmthing->target->player && !P_CanPlayerHurtPlayer(thing->player, tmthing, tmthing->target->player, 0)))
 				return CHECKTHING_IGNORE;
 
 			if (thing->type != MT_PLAYER)