diff --git a/man/hail.rst b/man/hail.rst
index 23b12e58fae605d75124dce2b9f93b6a6af1dba2..ca80de0d0a09c33e359e2f33069448a697a36e7c 100644
--- a/man/hail.rst
+++ b/man/hail.rst
@@ -54,10 +54,9 @@ OPTIONS
 The options that can be passed to the program are as follows:
 
 -p, --print-nodes
-  Prints the before and after node status, in a format designed to
-  allow the user to understand the node's most important
-  parameters. See the man page **hbal**(1) for more details about this
-  field.
+  Prints the before and after node status, in a format designed to allow
+  the user to understand the node's most important parameters. See the
+  man page **htools**(1) for more details about this option.
 
 -t *datafile*, --text-data=*datafile*
   The name of the file holding cluster information, to override the
diff --git a/man/hbal.rst b/man/hbal.rst
index a032a89a076989cf1301c77545c55fcc0adb3c18..1e054e57624cc4ad858570714efb8796365554fe 100644
--- a/man/hbal.rst
+++ b/man/hbal.rst
@@ -217,82 +217,9 @@ The options that can be passed to the program are as follows:
   new jobset.
 
 -p, --print-nodes
-  Prints the before and after node status, in a format designed to
-  allow the user to understand the node's most important parameters.
-
-  It is possible to customise the listed information by passing a
-  comma-separated list of field names to this option (the field list
-  is currently undocumented), or to extend the default field list by
-  prefixing the additional field list with a plus sign. By default,
-  the node list will contain the following information:
-
-  F
-    a character denoting the status of the node, with '-' meaning an
-    offline node, '*' meaning N+1 failure and blank meaning a good
-    node
-
-  Name
-    the node name
-
-  t_mem
-    the total node memory
-
-  n_mem
-    the memory used by the node itself
-
-  i_mem
-    the memory used by instances
-
-  x_mem
-    amount memory which seems to be in use but cannot be determined
-    why or by which instance; usually this means that the hypervisor
-    has some overhead or that there are other reporting errors
-
-  f_mem
-    the free node memory
-
-  r_mem
-    the reserved node memory, which is the amount of free memory
-    needed for N+1 compliance
-
-  t_dsk
-    total disk
-
-  f_dsk
-    free disk
-
-  pcpu
-    the number of physical cpus on the node
-
-  vcpu
-    the number of virtual cpus allocated to primary instances
-
-  pcnt
-    number of primary instances
-
-  scnt
-    number of secondary instances
-
-  p_fmem
-    percent of free memory
-
-  p_fdsk
-    percent of free disk
-
-  r_cpu
-    ratio of virtual to physical cpus
-
-  lCpu
-    the dynamic CPU load (if the information is available)
-
-  lMem
-    the dynamic memory load (if the information is available)
-
-  lDsk
-    the dynamic disk load (if the information is available)
-
-  lNet
-    the dynamic net load (if the information is available)
+  Prints the before and after node status, in a format designed to allow
+  the user to understand the node's most important parameters. See the
+  man page **htools**(1) for more details about this option.
 
 --print-instances
   Prints the before and after instance map. This is less useful as the
diff --git a/man/hscan.rst b/man/hscan.rst
index 8a6f7aca1b4db7d5439dc3c9c8c257dbbf6c6ee4..defb19427e29b2e6ae90a7125a3889fd78a123a6 100644
--- a/man/hscan.rst
+++ b/man/hscan.rst
@@ -75,7 +75,7 @@ The options that can be passed to the program are as follows:
   Prints the node status for each cluster after the cluster's one-line
   status display, in a format designed to allow the user to understand
   the node's most important parameters. For details, see the man page
-  for **hbal**(1).
+  for **htools**(1).
 
 -d *path*
   Save the node and instance data for each cluster under *path*,
diff --git a/man/hspace.rst b/man/hspace.rst
index b91361bac09875725ece7ee883d3501af9b88b82..7a1b93ce7c32dabb4fde41195d7f60a4929ae633 100644
--- a/man/hspace.rst
+++ b/man/hspace.rst
@@ -221,82 +221,9 @@ The options that can be passed to the program are as follows:
   at least one quarter of disk space should be left free on nodes.
 
 -p, --print-nodes
-  Prints the before and after node status, in a format designed to
-  allow the user to understand the node's most important parameters.
-
-  It is possible to customise the listed information by passing a
-  comma-separated list of field names to this option (the field list
-  is currently undocumented), or to extend the default field list by
-  prefixing the additional field list with a plus sign. By default,
-  the node list will contain the following information:
-
-  F
-    a character denoting the status of the node, with '-' meaning an
-    offline node, '*' meaning N+1 failure and blank meaning a good
-    node
-
-  Name
-    the node name
-
-  t_mem
-    the total node memory
-
-  n_mem
-    the memory used by the node itself
-
-  i_mem
-    the memory used by instances
-
-  x_mem
-    amount memory which seems to be in use but cannot be determined
-    why or by which instance; usually this means that the hypervisor
-    has some overhead or that there are other reporting errors
-
-  f_mem
-    the free node memory
-
-  r_mem
-    the reserved node memory, which is the amount of free memory
-    needed for N+1 compliance
-
-  t_dsk
-    total disk
-
-  f_dsk
-    free disk
-
-  pcpu
-    the number of physical cpus on the node
-
-  vcpu
-    the number of virtual cpus allocated to primary instances
-
-  pcnt
-    number of primary instances
-
-  scnt
-    number of secondary instances
-
-  p_fmem
-    percent of free memory
-
-  p_fdsk
-    percent of free disk
-
-  r_cpu
-    ratio of virtual to physical cpus
-
-  lCpu
-    the dynamic CPU load (if the information is available)
-
-  lMem
-    the dynamic memory load (if the information is available)
-
-  lDsk
-    the dynamic disk load (if the information is available)
-
-  lNet
-    the dynamic net load (if the information is available)
+  Prints the before and after node status, in a format designed to allow
+  the user to understand the node's most important parameters. See the
+  man page **htools**(1) for more details about this option.
 
 -O *name*
   This option (which can be given multiple times) will mark nodes as
diff --git a/man/htools.rst b/man/htools.rst
index 116309970c0f29b776016a212b1f9b224cf44fd0..3104bf0e754b10ac067c22e7de43c2510c30f89e 100644
--- a/man/htools.rst
+++ b/man/htools.rst
@@ -51,6 +51,86 @@ COMMON OPTIONS
 Options behave the same in all program modes, but not all program modes
 support all options. Some common options are:
 
+-p, --print-nodes
+  Prints the node status, in a format designed to allow the user to
+  understand the node's most important parameters. If the command in
+  question makes a cluster transition (e.g. balancing or allocation),
+  then usually both the initial and final node status is printed.
+
+  It is possible to customise the listed information by passing a
+  comma-separated list of field names to this option (the field list
+  is currently undocumented), or to extend the default field list by
+  prefixing the additional field list with a plus sign. By default,
+  the node list will contain the following information:
+
+  F
+    a character denoting the status of the node, with '-' meaning an
+    offline node, '*' meaning N+1 failure and blank meaning a good
+    node
+
+  Name
+    the node name
+
+  t_mem
+    the total node memory
+
+  n_mem
+    the memory used by the node itself
+
+  i_mem
+    the memory used by instances
+
+  x_mem
+    amount memory which seems to be in use but cannot be determined
+    why or by which instance; usually this means that the hypervisor
+    has some overhead or that there are other reporting errors
+
+  f_mem
+    the free node memory
+
+  r_mem
+    the reserved node memory, which is the amount of free memory
+    needed for N+1 compliance
+
+  t_dsk
+    total disk
+
+  f_dsk
+    free disk
+
+  pcpu
+    the number of physical cpus on the node
+
+  vcpu
+    the number of virtual cpus allocated to primary instances
+
+  pcnt
+    number of primary instances
+
+  scnt
+    number of secondary instances
+
+  p_fmem
+    percent of free memory
+
+  p_fdsk
+    percent of free disk
+
+  r_cpu
+    ratio of virtual to physical cpus
+
+  lCpu
+    the dynamic CPU load (if the information is available)
+
+  lMem
+    the dynamic memory load (if the information is available)
+
+  lDsk
+    the dynamic disk load (if the information is available)
+
+  lNet
+    the dynamic net load (if the information is available)
+
 -v, --verbose
   Increase the output verbosity. Each usage of this option will
   increase the verbosity (currently more than 2 doesn't make sense)