diff --git a/apps/app_queue.c b/apps/app_queue.c
index 7316a9b7009c23e2f60bd283278c9f5de225cdab..2e79909ca9fc98de79f48a56f52f70c266051632 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -1755,7 +1755,9 @@ static void queue_set_param(struct call_queue *q, const char *param, const char
 	} else if (!strcasecmp(param, "wrapuptime")) {
 		q->wrapuptime = atoi(val);
 	} else if (!strcasecmp(param, "penaltymemberslimit")) {
-		q->penaltymemberslimit = atoi(val);
+		if ((sscanf(val, "%10d", &q->penaltymemberslimit) != 1)) {
+			q->penaltymemberslimit = 0;
+		}
 	} else if (!strcasecmp(param, "autofill")) {
 		q->autofill = ast_true(val);
 	} else if (!strcasecmp(param, "monitor-type")) {