diff --git a/lib/cli.py b/lib/cli.py
index 85606d40a9ad34353528bc1f1a49b4d102e06561..d1b6925ecd0f8bef8d7a2f041e7cfbc31a01b752 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -479,6 +479,9 @@ def GenerateTable(headers, fields, separator, data,
 
   format_fields = []
   for field in fields:
+    if headers and field not in headers:
+      raise errors.ProgrammerError("Missing header description for field '%s'"
+                                   % field)
     if separator is not None:
       format_fields.append("%s")
     elif field in numfields:
@@ -501,6 +504,7 @@ def GenerateTable(headers, fields, separator, data,
           pass
         else:
           val = row[idx] = utils.FormatUnit(val)
+      val = row[idx] = str(val)
       if separator is None:
         mlens[idx] = max(mlens[idx], len(val))