--- libvirt-0.1.7/src/xen_internal.c	2006-09-29 10:18:17.000000000 +0200
+++ libvirt-0.1.8/src/xen_internal.c	2006-10-12 11:29:40.000000000 +0200
@@ -1012,7 +1012,7 @@
         ret = xenHypervisorDoV2Dom(handle, &op);
         if (ret < 0)
             return(-1);
-        ipt->number = id;
+        ipt->number = vcpu;
         if (op.u.getvcpuinfo.online) {
             if (op.u.getvcpuinfo.running) ipt->state = VIR_VCPU_RUNNING;
             if (op.u.getvcpuinfo.blocked) ipt->state = VIR_VCPU_BLOCKED;
@@ -1054,7 +1054,7 @@
             ret = xenHypervisorDoV1Op(handle, &op);
             if (ret < 0)
                 return(-1);
-            ipt->number = id;
+            ipt->number = vcpu;
             if (op.u.getvcpuinfo.online) {
                 if (op.u.getvcpuinfo.running) ipt->state = VIR_VCPU_RUNNING;
                 if (op.u.getvcpuinfo.blocked) ipt->state = VIR_VCPU_BLOCKED;
@@ -1078,7 +1078,7 @@
             ret = xenHypervisorDoV0Op(handle, &op);
             if (ret < 0)
                 return(-1);
-            ipt->number = id;
+            ipt->number = vcpu;
             if (op.u.getvcpuinfo.online) {
                 if (op.u.getvcpuinfo.running) ipt->state = VIR_VCPU_RUNNING;
                 if (op.u.getvcpuinfo.blocked) ipt->state = VIR_VCPU_BLOCKED;
