diff --git a/lib/objects.py b/lib/objects.py
index 13e78dd05548d1d1f4a065009090a0135f586d22..d5f446ed7c25ea0742f7e2a202d263f36549295a 100644
--- a/lib/objects.py
+++ b/lib/objects.py
@@ -759,6 +759,20 @@ class Cluster(TaggableObject):
     """Fill defaults for missing configuration values.
 
     """
+    if self.hvparams is None:
+      self.hvparams = constants.HVC_DEFAULTS
+    else:
+      for hypervisor in self.hvparams:
+        self.hvparams[hypervisor] = self.FillDict(
+            constants.HVC_DEFAULTS[hypervisor], self.hvparams[hypervisor])
+
+    if self.beparams is None:
+      self.beparams = {constants.BEGR_DEFAULT: constants.BEC_DEFAULTS}
+    else:
+      for begroup in self.beparams:
+        self.beparams[begroup] = self.FillDict(constants.BEC_DEFAULTS,
+                                               self.beparams[begroup])
+
     if self.modify_etc_hosts is None:
       self.modify_etc_hosts = True