diff --git a/src/p_inter.c b/src/p_inter.c
index 669fabf9fe566844244aef8526bc3838f0a84276..c7a15275af3b4a1c112a18fba38da7f1b57d362c 100644
--- a/src/p_inter.c
+++ b/src/p_inter.c
@@ -1187,8 +1187,8 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
 						special->threshold = TICRATE - 1;
 						toucher->momz = -toucher->momz;
 					}
-					else // source can't be given as otherwise P_PlayerHitsPlayer will fail
-						P_DamageMobj(toucher, special, NULL/*special->target*/, 1, 0);
+					else // can't handle in PIT_CheckThing because of landing-on causing it to stop
+						P_DamageMobj(toucher, special, special->target, 1, 0);
 				}
 				else if (special->threshold == 0)
 				{