diff --git a/main/pbx.c b/main/pbx.c
index ee5ed7ea9fce24bc0093ad033a45a508e654a6ac..4a8345337c72321b05cb4816a6214089f17e91b6 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -8760,6 +8760,7 @@ static int pbx_parseable_goto(struct ast_channel *chan, const char *goto_string,
 	char *stringp;
 	int ipri;
 	int mode = 0;
+	char rest[2] = "";
 
 	if (ast_strlen_zero(goto_string)) {
 		ast_log(LOG_WARNING, "Goto requires an argument ([[context,]extension,]priority)\n");
@@ -8785,7 +8786,7 @@ static int pbx_parseable_goto(struct ast_channel *chan, const char *goto_string,
 		mode = -1;
 		pri++;
 	}
-	if (sscanf(pri, "%30d", &ipri) != 1) {
+	if (sscanf(pri, "%30d%1s", &ipri, rest) != 1) {
 		ipri = ast_findlabel_extension(chan, context ? context : ast_channel_context(chan),
 			exten ? exten : ast_channel_exten(chan), pri,
 			S_COR(ast_channel_caller(chan)->id.number.valid, ast_channel_caller(chan)->id.number.str, NULL));