diff --git a/lib/objects.py b/lib/objects.py
index 2104156a974aac8b8aef253ec11737e08d500299..dbcf32ec37574cfba81378efc5cc0536ca347e26 100644
--- a/lib/objects.py
+++ b/lib/objects.py
@@ -742,6 +742,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