diff --git a/openerp/fields.py b/openerp/fields.py
index 01043021dfd1a5fe4992bf6115c87a953fa26022..e103ee14515f5a395fbc87b2ffe97f20a79c0f13 100644
--- a/openerp/fields.py
+++ b/openerp/fields.py
@@ -903,6 +903,9 @@ class Integer(Field):
     type = 'integer'
 
     def convert_to_cache(self, value, record, validate=True):
+        if isinstance(value, dict):
+            # special case, when an integer field is used as inverse for a one2many
+            return value.get('id', False)
         return int(value or 0)
 
     def convert_to_read(self, value, use_name_get=True):