--- xen_unified.c 2007-10-31 15:20:36.000000000 +0900 +++ xen_unified.c_fix1 2007-10-31 14:37:57.000000000 +0900 @@ -945,16 +945,18 @@ xenUnifiedDomainDumpXML (virDomainPtr do { GET_PRIVATE(dom->conn); - if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) { - char *cpus; - - cpus = xenDomainUsedCpus(dom); - return xenDaemonDomainDumpXML(dom, flags, cpus); - } - if (priv->opened[XEN_UNIFIED_PROXY_OFFSET]) - return xenProxyDomainDumpXML(dom, flags); - if (priv->opened[XEN_UNIFIED_XM_OFFSET]) - return xenXMDomainDumpXML(dom, flags); + if (dom->id == -1 && priv->xendConfigVersion < 3 ) { + if (priv->opened[XEN_UNIFIED_XM_OFFSET]) + return xenXMDomainDumpXML(dom, flags); + } else { + if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) { + char *cpus; + cpus = xenDomainUsedCpus(dom); + return xenDaemonDomainDumpXML(dom, flags, cpus); + } + if (priv->opened[XEN_UNIFIED_PROXY_OFFSET]) + return xenProxyDomainDumpXML(dom, flags); + } xenUnifiedError (dom->conn, VIR_ERR_NO_SUPPORT, __FUNCTION__); return NULL;