diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py
index ee0ea8fa23a5b472781fc17e39a447d4bf057b89..9ee0c8da506b87fadae4d17bd3f9bc7f1c552ddc 100644
--- a/openerp/osv/fields.py
+++ b/openerp/osv/fields.py
@@ -1145,9 +1145,9 @@ class function(_column):
         # if we already have a value, don't recompute it.
         # This happen if case of stored many2one fields
         if values and not multi and name in values[0]:
-            result = {v['id']: v[name] for v in values}
+            result = dict((v['id'], v[name]) for v in values)
         elif values and multi and all(n in values[0] for n in name):
-            result = {v['id']: dict((n, v[n]) for n in name) for v in values}
+            result = dict((v['id'], dict((n, v[n]) for n in name)) for v in values)
         else:
             result = self._fnct(obj, cr, uid, ids, name, self._arg, context)
         for id in ids:
diff --git a/openerp/tools/translate.py b/openerp/tools/translate.py
index 721fb47d9a3b4bc9b5a690a9b3fbb296f89aff80..ac011626ce489e5151aa9bce8e5419987ca91c73 100644
--- a/openerp/tools/translate.py
+++ b/openerp/tools/translate.py
@@ -830,7 +830,7 @@ def trans_generate(lang, modules, cr):
     def get_module_paths():
         # default addons path (base)
         def_path = os.path.abspath(os.path.join(config.config['root_path'], 'addons'))
-        mod_paths = { def_path }
+        mod_paths = set([ def_path ])
         ad_paths = map(lambda m: os.path.abspath(m.strip()),config.config['addons_path'].split(','))
         for adp in ad_paths:
             mod_paths.add(adp)
@@ -838,7 +838,7 @@ def trans_generate(lang, modules, cr):
                 mod_paths.add(adp)
             elif adp != def_path and adp.startswith(def_path):
                 mod_paths.add(adp[len(def_path)+1:])
-        return mod_paths
+        return list(mod_paths)
 
     def get_module_from_path(path, mod_paths):
         for mp in mod_paths: