diff --git a/src/p_spec.c b/src/p_spec.c
index 1ce965da9552e09f550915f964f090b4d396a1c2..d2f032c43664d398610cad871e46b668764ba58f 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -2780,7 +2780,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
 			if (mo && mo->player)
 			{
 				powertype_t power = line->stringargs[0] ? get_number(line->stringargs[0]) : 0;
-				UINT16 value = line->stringargs[1] ? get_number(line->stringargs[1]) : 0;
+				INT32 value = line->stringargs[1] ? get_number(line->stringargs[1]) : 0;
 				if (value == -1) // 'Infinite'
 					value = UINT16_MAX;