diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 7e48df80b9e9f2c3473cda837a80a776c152140b..ced3c33c4c565d7df9966f304b7bc82a0de7915a 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -2403,7 +2403,7 @@ class LUQueryInstances(NoHooksLU):
     _CheckOutputFields(static=["name", "os", "pnode", "snodes",
                                "admin_state", "admin_ram",
                                "disk_template", "ip", "mac", "bridge",
-                               "sda_size", "sdb_size"],
+                               "sda_size", "sdb_size", "vcpus"],
                        dynamic=self.dynamic_fields,
                        selected=self.op.output_fields)
 
@@ -2479,6 +2479,8 @@ class LUQueryInstances(NoHooksLU):
             val = None
           else:
             val = disk.size
+        elif field == "vcpus":
+          val = instance.vcpus
         else:
           raise errors.ParameterError(field)
         iout.append(val)
diff --git a/scripts/gnt-instance b/scripts/gnt-instance
index 88e138e88b457329512fe058ea4e01cb2d3541d2..fd54f7ce763d76c786f72478daec12e67669f36c 100755
--- a/scripts/gnt-instance
+++ b/scripts/gnt-instance
@@ -176,7 +176,7 @@ def ListInstances(opts, args):
                "oper_state": "Status", "admin_ram": "Configured_memory",
                "oper_ram": "Memory", "disk_template": "Disk_template",
                "ip": "IP Address", "mac": "MAC Address",
-               "bridge": "Bridge",
+               "bridge": "Bridge", "vcpus": "VCPUs",
                "sda_size": "Disk/0", "sdb_size": "Disk/1"}
   else:
     headers = None
@@ -186,7 +186,7 @@ def ListInstances(opts, args):
   else:
     unitfields = None
 
-  numfields = ["admin_ram", "oper_ram", "sda_size", "sdb_size"]
+  numfields = ["admin_ram", "oper_ram", "sda_size", "sdb_size", "vcpus"]
 
   # change raw values to nicer strings
   for row in output: