diff --git a/res/res_agi.c b/res/res_agi.c
index 9d08359fea37883ef87801164066c37ff760a714..cf84bb9c38af90504b8c6094f7bd741a5ee4c67c 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -2208,7 +2208,8 @@ static enum agi_result run_agi(struct ast_channel *chan, char *request, AGI *agi
 		if (needhup) {
 			needhup = 0;
 			dead = 1;
-			kill(pid, SIGHUP);
+			if (pid > -1)
+				kill(pid, SIGHUP);
 		}
 		ms = -1;
 		c = ast_waitfor_nandfds(&chan, dead ? 0 : 1, &agi->ctrl, 1, NULL, &outfd, &ms);