diff --git a/bin/addons/__init__.py b/bin/addons/__init__.py
index 57d5742431e46a41414c5d6dee81e596fca236d3..e43b91a97b008edd9f421fbc8bd282b19976472c 100644
--- a/bin/addons/__init__.py
+++ b/bin/addons/__init__.py
@@ -336,11 +336,11 @@ def init_module_objects(cr, module_name, obj_list):
     logger.notifyChannel('init', netsvc.LOG_INFO, 'module %s: creating or updating database tables' % module_name)
     todo = []
     for obj in obj_list:
-        if hasattr(obj, 'init'):
-            obj.init(cr)
         result = obj._auto_init(cr, {'module': module_name})
         if result:
             todo += result
+        if hasattr(obj, 'init'):
+            obj.init(cr)
         cr.commit()
     todo.sort()
     for t in todo: