diff --git a/src/p_polyobj.c b/src/p_polyobj.c
index be567309366ca94abf4e33cd4267e0e7fcc849f8..f6f666061c4371d64a32b3a91512d81929c619cb 100644
--- a/src/p_polyobj.c
+++ b/src/p_polyobj.c
@@ -2647,6 +2647,7 @@ INT32 EV_DoPolyObjWaypoint(polywaypointdata_t *pwdata)
 
 	// Set pointnum
 	th->pointnum = target->health;
+	th->target = NULL; // set to NULL first so the below doesn't go wrong
 	// Set the mobj as your target! -- Monster Iestyn 27/12/19
 	P_SetTarget(&th->target, target);