diff --git a/lib/objects.py b/lib/objects.py
index aebe95960a8a2f12ec40d1cedad301b7b60e544d..15840f930bd0c671b0036f2070833ca81ceda67e 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__:
@@ -157,6 +158,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.