diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index d0d2dd08d973e5ce040a9d9b57bcc8cd66ef3758..36d0353fdfbd865d28f3ef73704d18c64976a72c 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -7360,7 +7360,7 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
     if (show_count < 0 || show_count > max_id) {
         if (show_count > max_id)
             vshPrint(ctl, _("Only %d CPUs available to show\n"), max_id);
-        show_count = max_id;
+        show_count = max_id - cpu;
     }
 
     /* get percpu information */