--- web/showgraph.c.orig	2015-10-01 15:42:42.000000000 +0100
+++ web/showgraph.c	2019-04-29 14:49:39.576583193 +0100
@@ -1048,15 +1048,22 @@
 	if (!gdef->title) gdef->title = strdup("");
 	if (strncmp(gdef->title, "exec:", 5) == 0) {
 		char *pcmd;
-		int i, pcmdlen = 0;
+		int i, pcmdlen = 5;
 		FILE *pfd;
 		char *p;
+		char *param_str = "%s %s %s \"%s\"";
 
-		pcmdlen = strlen(gdef->title+5) + strlen(displayname) + strlen(service) + strlen(glegend) + 5;
+		/* If the displayname contains a space, then we need to cater for adding double quotes around it. */
+		if (strchr(displayname, ' ') != NULL) {
+			pcmdlen += 2;
+			param_str = "%s \"%s\" %s \"%s\"";
+		}
+
+		pcmdlen += (strlen(gdef->title+5) + strlen(displayname) + strlen(service) + strlen(glegend));
 		for (i=0; (i<rrddbcount); i++) pcmdlen += (strlen(rrddbs[i].rrdfn) + 3);
 
 		p = pcmd = (char *)malloc(pcmdlen+1);
-		p += sprintf(p, "%s %s %s \"%s\"", gdef->title+5, displayname, service, glegend);
+		p += sprintf(p, param_str, gdef->title+5, displayname, service, glegend);
 		for (i=0; (i<rrddbcount); i++) {
 			if ((firstidx == -1) || ((i >= firstidx) && (i <= lastidx))) {
 				p += sprintf(p, " \"%s\"", rrddbs[i].rrdfn);
