diff --git a/pytools/__init__.py b/pytools/__init__.py
index c771fcd8f0d4c55c538f5d97e5d5c794a2b540be..41888d0a7217c2a6f04905285fe507db5d8142f6 100644
--- a/pytools/__init__.py
+++ b/pytools/__init__.py
@@ -99,7 +99,8 @@ class Record(object):
         return "%s(%s)" % (
                 self.__class__.__name__,
                 ", ".join("%s=%r" % (fld, getattr(self, fld))
-                    for fld in self.__class__.fields))
+                    for fld in self.__class__.fields
+                    if hasattr(self, fld)))
 
     def __eq__(self, other):
         return (self.__class__ == other.__class__