diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 751690e285..dfe773896e 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7425,7 +7425,8 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg,
graphics->data.vnc.socketAutogenerated = true;
}
- virBufferAsprintf(&opt, "unix:%s", graphics->data.vnc.socket);
+ virBufferAddLit(&opt, "unix:");
+ qemuBufferEscapeComma(&opt, graphics->data.vnc.socket);
} else {
if (!graphics->data.vnc.autoport &&
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-name-escape.args b/tests/qemuxml2argvdata/qemuxml2argv-name-escape.args
index a5e35b877c..ffec3f4d12 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-name-escape.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-name-escape.args
@@ -13,7 +13,6 @@ bar/master-key.aes \
-m 214 \
-smp 1 \
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
--nographic \
-nodefaults \
-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-foo,bar/monitor.sock,\
server,nowait \
@@ -21,4 +20,6 @@ server,nowait \
-no-acpi \
-boot c \
-usb \
+-vnc unix:/tmp/bar,,foo.sock \
+-vga cirrus \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-name-escape.xml b/tests/qemuxml2argvdata/qemuxml2argv-name-escape.xml
index 3a8c3cd56d..e263553e07 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-name-escape.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-name-escape.xml
@@ -14,5 +14,6 @@
destroy
/usr/bin/qemu
+
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index bed6a71b96..99f2b335c0 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1903,7 +1903,7 @@ mymain(void)
NONE);
DO_TEST("name-escape", QEMU_CAPS_NAME_DEBUG_THREADS,
- QEMU_CAPS_OBJECT_SECRET, QEMU_CAPS_CHARDEV);
+ QEMU_CAPS_OBJECT_SECRET, QEMU_CAPS_CHARDEV, QEMU_CAPS_VNC);
DO_TEST("debug-threads", QEMU_CAPS_NAME_DEBUG_THREADS);
DO_TEST("master-key", QEMU_CAPS_OBJECT_SECRET);