diff --git a/cli.c b/cli.c
index b29ddeb9a6dc766559e4a00144b2aec8775494ca..80bcd73a6242e94617a01c0ae9d7eaf629d78c26 100755
--- a/cli.c
+++ b/cli.c
@@ -983,6 +983,7 @@ static char *__ast_cli_generator(char *text, char *word, int state, int lock)
 				fullcmd = e->generator(text, word, (strlen(word) ? (x - 1) : (x)), state);
 				if (lock)
 					ast_mutex_unlock(&clilock);
+				free(dup);
 				return fullcmd;
 			}