diff --git a/bin/addons/base/res/res_user.py b/bin/addons/base/res/res_user.py
index 341680a23ac8811b978e2dde68e6722f2967bcae..1542b58935cbca2fa3a573484e52210346df3c8c 100644
--- a/bin/addons/base/res/res_user.py
+++ b/bin/addons/base/res/res_user.py
@@ -212,7 +212,7 @@ class users(osv.osv):
 
 
     def _check_company(self, cr, uid, ids, context=None):
-        return all(this.company_id in this.company_ids for this in self.browse(cr, uid, ids, context))
+        return all(((this.company_id in this.company_ids) or not this.company_ids) for this in self.browse(cr, uid, ids, context))
 
     _constraints = [
         (_check_company, 'The chosen company is not in the allowed companies', ['company_id', 'company_ids']),