diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 04cc20bfb1460a4194025b515c80f2a2079db4d8..573dae9fb8dfcc81f8679348bd08696800d6ea4b 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -39,6 +39,7 @@ import OpenSSL
 import socket
 import tempfile
 import shutil
+import operator
 
 from ganeti import ssh
 from ganeti import utils
@@ -545,9 +546,11 @@ class _QueryBase:
 
     """
     if fields is None:
-      # Client requests all fields
-      fdefs = query.GetAllFields(cls.FIELDS.values())
+      # Client requests all fields, sort by name
+      fdefs = sorted(query.GetAllFields(cls.FIELDS.values()),
+                     key=operator.attrgetter("name"))
     else:
+      # Keep order as requested by client
       fdefs = query.Query(cls.FIELDS, fields).GetFields()
 
     return objects.QueryFieldsResponse(fields=fdefs).ToDict()