diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 6fe5a43aeb..acba485309 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -5498,16 +5498,9 @@ qemuDomainGetIOThreadsMon(virQEMUDriverPtr driver,
                           virDomainObjPtr vm,
                           qemuMonitorIOThreadInfoPtr **iothreads)
 {
-    qemuDomainObjPrivatePtr priv;
+    qemuDomainObjPrivatePtr priv = vm->privateData;
     int niothreads = 0;
 
-    priv = vm->privateData;
-    if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                       _("IOThreads not supported with this binary"));
-        return -1;
-    }
-
     qemuDomainObjEnterMonitor(driver, vm);
     niothreads = qemuMonitorGetIOThreads(priv->mon, iothreads);
     if (qemuDomainObjExitMonitor(driver, vm) < 0 || niothreads < 0)
@@ -5522,6 +5515,7 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver,
                            virDomainObjPtr vm,
                            virDomainIOThreadInfoPtr **info)
 {
+    qemuDomainObjPrivatePtr priv;
     qemuMonitorIOThreadInfoPtr *iothreads = NULL;
     virDomainIOThreadInfoPtr *info_ret = NULL;
     int niothreads = 0;
@@ -5537,6 +5531,13 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver,
         goto endjob;
     }
 
+    priv = vm->privateData;
+    if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("IOThreads not supported with this binary"));
+        goto endjob;
+    }
+
     if ((niothreads = qemuDomainGetIOThreadsMon(driver, vm, &iothreads)) < 0)
         goto endjob;
 
@@ -20882,6 +20883,7 @@ qemuDomainGetStatsIOThread(virQEMUDriverPtr driver,
                            int *maxparams,
                            unsigned int privflags ATTRIBUTE_UNUSED)
 {
+    qemuDomainObjPrivatePtr priv = dom->privateData;
     size_t i;
     qemuMonitorIOThreadInfoPtr *iothreads = NULL;
     int niothreads;
@@ -20890,6 +20892,9 @@ qemuDomainGetStatsIOThread(virQEMUDriverPtr driver,
     if (!virDomainObjIsActive(dom))
         return 0;
 
+    if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD))
+        return 0;
+
     if ((niothreads = qemuDomainGetIOThreadsMon(driver, dom, &iothreads)) < 0)
         return -1;