diff --git a/openerp/fields.py b/openerp/fields.py
index 580cfd0e09b5741b301131efe92c791d20833710..67c7991f8d2cafae405c86d4d1619faa74474f28 100644
--- a/openerp/fields.py
+++ b/openerp/fields.py
@@ -1451,7 +1451,7 @@ class Many2one(_Relational):
         records._cache[self] = value
 
     def convert_to_cache(self, value, record, validate=True):
-        if isinstance(value, (NoneType, int)):
+        if isinstance(value, (NoneType, int, long)):
             return record.env[self.comodel_name].browse(value)
         if isinstance(value, BaseModel):
             if value._name == self.comodel_name and len(value) <= 1: