diff --git a/funcs/func_enum.c b/funcs/func_enum.c
index 5f1b01d5699a3c5d71d215b588dcef5153a9e8eb..87f321edc35f0c7c9ddce61f5b2f77c2db89a04b 100644
--- a/funcs/func_enum.c
+++ b/funcs/func_enum.c
@@ -141,14 +141,14 @@ static int function_txtcidname(struct ast_channel *chan, char *cmd,
 
 	buf[0] = '\0';
 
-	LOCAL_USER_ADD(u);
 
 	if (ast_strlen_zero(data)) {
 		ast_log(LOG_WARNING, "TXTCIDNAME requires an argument (number)\n");
-		LOCAL_USER_REMOVE(u);
 		return -1;
 	}
 
+	LOCAL_USER_ADD(u);
+
 	res = ast_get_txt(chan, data, dest, sizeof(dest), tech, sizeof(tech), txt,
 			  sizeof(txt));