diff --git a/src/p_spec.c b/src/p_spec.c
index 5108b4d738d91435c0b4237cb18bdc89b7496b26..ece2391275f1179d273709d0fba052abd93bc1da 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -2719,7 +2719,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
 
 				// Reset bot too.
 				if (bot) {
-					if (line->flags & ML_NOCLIMB)
+					if (line->args[0])
 						P_TeleportMove(bot, mo->x, mo->y, mo->z);
 					bot->momx = bot->momy = bot->momz = 1;
 					bot->pmomz = 0;
@@ -4051,7 +4051,7 @@ sector_t *P_MobjTouchingSectorSpecial(mobj_t *mo, INT32 section, INT32 number)
 		if (!(node->m_sector->flags & SF_TRIGGERSPECIAL_TOUCH))
 			continue;
 
-		if (GETSECSPECIAL(mo->subsector->sector->special, section) == number)
+		if (GETSECSPECIAL(node->m_sector->special, section) == number)
 			return node->m_sector;
 	}
 
@@ -6800,7 +6800,7 @@ void P_SpawnSpecials(boolean fromnetsave)
 
 			case 604: // Adjustable Blinking Light
 				sec = sides[*lines[i].sidenum].sector - sectors;
-				TAG_ITER_SECTORS(tag, s)
+				TAG_ITER_SECTORS(lines[i].args[0], s)
 					P_SpawnAdjustableStrobeFlash(&sectors[s], lines[i].args[3],
 						(lines[i].args[4] & TMB_USETARGET) ? sectors[s].lightlevel : lines[i].args[5],
 						lines[i].args[1], lines[i].args[2], lines[i].args[4] & TMB_SYNC);