diff --git a/lib/objects.py b/lib/objects.py
index acb24d84b6c6f0654dfc045668b35af5df012052..23bb0f9776b96f4bc97212a56610752a2cb54917 100644
--- a/lib/objects.py
+++ b/lib/objects.py
@@ -58,6 +58,7 @@ class ConfigObject(object):
   def __init__(self, **kwargs):
     for k, v in kwargs.iteritems():
       setattr(self, k, v)
+    self.UpgradeConfig()
 
   def __getattr__(self, name):
     if name not in self.__slots__:
@@ -165,6 +166,15 @@ class ConfigObject(object):
     """Implement __repr__ for ConfigObjects."""
     return repr(self.ToDict())
 
+  def UpgradeConfig(self):
+    """Fill defaults for missing configuration values.
+
+    This method will be called at object init time, and its implementation will
+    be object dependent.
+
+    """
+    pass
+
 
 class TaggableObject(ConfigObject):
   """An generic class supporting tags.