diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index c7016f33d4..934f6cbf51 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -16286,7 +16286,9 @@ virDomainNetDefFormat(virBufferPtr buf,
virBufferEscapeString(buf, "\n",
def->model);
if (STREQ(def->model, "virtio") &&
- (def->driver.virtio.name || def->driver.virtio.txmode)) {
+ (def->driver.virtio.name || def->driver.virtio.txmode ||
+ def->driver.virtio.ioeventfd || def->driver.virtio.event_idx ||
+ def->driver.virtio.queues)) {
virBufferAddLit(buf, "driver.virtio.name) {
virBufferAsprintf(buf, " name='%s'",
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-interface-driver.xml b/tests/qemuxml2argvdata/qemuxml2argv-interface-driver.xml
new file mode 100644
index 0000000000..ec5ab61067
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-interface-driver.xml
@@ -0,0 +1,51 @@
+
+ test
+ 15d091de-0181-456b-9554-e4382dc1f1ab
+ 1048576
+ 1048576
+ 1
+
+ hvm
+
+
+
+
+
+ destroy
+ restart
+ restart
+
+ /usr/bin/qemu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 7d416d0511..5941323244 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -299,6 +299,7 @@ mymain(void)
DO_TEST("lease");
DO_TEST("event_idx");
DO_TEST("vhost_queues");
+ DO_TEST("interface-driver");
DO_TEST("virtio-lun");
DO_TEST("usb-redir");