diff --git a/lib/objects.py b/lib/objects.py
index 537da31927c421f7335b2fcb1b1618aca36a9258..caa90b42ab3b9dbb475e1a8aeaac0ca9d3993ea7 100644
--- a/lib/objects.py
+++ b/lib/objects.py
@@ -165,6 +165,21 @@ def UpgradeDiskParams(diskparams):
   return result
 
 
+def UpgradeNDParams(ndparams):
+  """Upgrade ndparams structure.
+
+  @type ndparams: dict
+  @param ndparams: disk parameters to upgrade
+  @rtype: dict
+  @return: the upgraded node parameters dict
+
+  """
+  if ndparams is None:
+    ndparams = {}
+
+  return FillDict(constants.NDC_DEFAULTS, ndparams)
+
+
 def MakeEmptyIPolicy():
   """Create empty IPolicy dictionary.
 
@@ -1473,8 +1488,7 @@ class Cluster(TaggableObject):
     if self.osparams is None:
       self.osparams = {}
 
-    if self.ndparams is None:
-      self.ndparams = constants.NDC_DEFAULTS
+    self.ndparams = UpgradeNDParams(self.ndparams)
 
     self.beparams = UpgradeGroupedParams(self.beparams,
                                          constants.BEC_DEFAULTS)