diff --git a/manager.c b/manager.c
index 541989cc995f394034d67c00bbbac9a117bda0f7..d58b48831fbac6717a734a1903bacd460ea0d906 100644
--- a/manager.c
+++ b/manager.c
@@ -745,7 +745,11 @@ static int action_getvar(struct mansession *s, struct message *m)
 		}
 	}
 
-	pbx_retrieve_variable(c, varname, &varval, workspace, sizeof(workspace), NULL);
+	if (varname[strlen(varname) - 1] == ')') {
+		varval = ast_func_read(c, varname, workspace, sizeof(workspace));
+	} else {
+		pbx_retrieve_variable(c, varname, &varval, workspace, sizeof(workspace), NULL);
+	}
 
 	if (c)
 		ast_mutex_unlock(&c->lock);