diff --git a/main/manager.c b/main/manager.c
index 8cff7ce0437a28a3822b07975ac31a0d883aea33..9c6f2af907707d4967a60774184392c65f01b770 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -1483,7 +1483,7 @@ static int action_getvar(struct mansession *s, const struct message *m)
 	const char *name = astman_get_header(m, "Channel");
 	const char *varname = astman_get_header(m, "Variable");
 	char *varval;
-	char workspace[1024];
+	char workspace[1024] = "";
 
 	if (ast_strlen_zero(varname)) {
 		astman_send_error(s, m, "No variable specified");
@@ -1500,6 +1500,7 @@ static int action_getvar(struct mansession *s, const struct message *m)
 
 	if (varname[strlen(varname) - 1] == ')') {
 		ast_func_read(c, (char *) varname, workspace, sizeof(workspace));
+		varval = workspace;
 	} else {
 		pbx_retrieve_variable(c, varname, &varval, workspace, sizeof(workspace), NULL);
 	}