diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index be4ccddae00956d84f52a4683c3a1a17c7375ee0..d1aa37c7429551bb696b014f37916bc70a75ecc4 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -3197,7 +3197,8 @@ class LUQueryNodes(NoHooksLU):
   REQ_BGL = False
 
   _SIMPLE_FIELDS = ["name", "serial_no", "ctime", "mtime", "uuid",
-                    "master_candidate", "offline", "drained"]
+                    "master_candidate", "offline", "drained",
+                    "master_capable", "vm_capable"]
 
   _FIELDS_DYNAMIC = utils.FieldSet(
     "dtotal", "dfree",
@@ -10244,6 +10245,8 @@ class IAllocator(object):
         "drained": ninfo.drained,
         "master_candidate": ninfo.master_candidate,
         "group": ninfo.group,
+        "master_capable": ninfo.master_capable,
+        "vm_capable": ninfo.vm_capable,
         }
 
       if not (ninfo.offline or ninfo.drained):
diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py
index f15d94d7b0649c3362a7721caed524e253c79969..bdbc4fa13bdf037caa527f281f99c4513c6e7f0b 100644
--- a/lib/rapi/rlib2.py
+++ b/lib/rapi/rlib2.py
@@ -69,6 +69,7 @@ N_FIELDS = ["name", "offline", "master_candidate", "drained",
             "ctotal", "cnodes", "csockets",
             "pip", "sip", "role",
             "pinst_list", "sinst_list",
+            "master_capable", "vm_capable",
             ] + _COMMON_FIELDS
 
 _NR_DRAINED = "drained"
diff --git a/man/gnt-node.sgml b/man/gnt-node.sgml
index d1cc18c177aef38b9fa0518778f198a4e2d55cb8..130718dae4a607935da59a39f74e8e64768b4eea 100644
--- a/man/gnt-node.sgml
+++ b/man/gnt-node.sgml
@@ -524,6 +524,18 @@
               </para>
             </listitem>
           </varlistentry>
+          <varlistentry>
+            <term>master_capable</term>
+            <listitem>
+              <para>whether the node can become a master candidate</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>vm_capable</term>
+            <listitem>
+              <para>whether the node can host instances</para>
+            </listitem>
+          </varlistentry>
         </variablelist>
       </para>
 
diff --git a/scripts/gnt-node b/scripts/gnt-node
index 92d8068694ce9d75edc0d9501854724d11f762da..3fa5ff939d77b08eeca0cfa6e751012d6ec7b49a 100755
--- a/scripts/gnt-node
+++ b/scripts/gnt-node
@@ -77,7 +77,8 @@ _LIST_HEADERS = {
   "master": "IsMaster",
   "offline": "Offline", "drained": "Drained",
   "role": "Role",
-  "ctime": "CTime", "mtime": "MTime", "uuid": "UUID"
+  "ctime": "CTime", "mtime": "MTime", "uuid": "UUID",
+  "master_capable": "MasterCapable", "vm_capable": "VMCapable",
   }
 
 
@@ -251,7 +252,8 @@ def ListNodes(opts, args):
       val = row[idx]
       if field in list_type_fields:
         val = ",".join(val)
-      elif field in ('master', 'master_candidate', 'offline', 'drained'):
+      elif field in ('master', 'master_candidate', 'offline', 'drained',
+                     'master_capable', 'vm_capable'):
         if val:
           val = 'Y'
         else: