diff --git a/openerp/addons/test_impex/tests/test_load.py b/openerp/addons/test_impex/tests/test_load.py
index d9cbd5b100a06571d6f1e43ba0c7f72653481161..2fcf6dc2ad65541e02d384dc0e7ee1e36feae9fd 100644
--- a/openerp/addons/test_impex/tests/test_load.py
+++ b/openerp/addons/test_impex/tests/test_load.py
@@ -642,12 +642,11 @@ class test_m2o(ImporterCase):
     @mute_logger('openerp.sql_db')
     def test_fail_id_mistype(self):
         result = self.import_(['value/.id'], [["foo"]])
-
-        self.assertEqual(result['messages'], [
-            message(u"Invalid database id 'foo' for the field 'unknown'",
-                    moreinfo=moreaction(res_model='ir.model.data',
-                                        domain=[('model','=','export.integer')]))
-        ])
+        try:
+            int("foo")
+        except ValueError, exc:
+            expected_message = unicode(exc)
+        self.assertEqual(result['messages'], [message(expected_message)])
         self.assertIs(result['ids'], False)
 
     def test_sub_field(self):
diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py
index 0298bd3a90adbf6763f088a86e409cd59a69a1bc..53ba5a2e8ae9c5b4a893494dacace6b64c36352c 100644
--- a/openerp/osv/expression.py
+++ b/openerp/osv/expression.py
@@ -1195,10 +1195,6 @@ class expression(object):
                 query, params = self.__leaf_to_sql(
                     create_substitution_leaf(eleaf, (left, '=', right), model))
 
-        elif left == 'id':
-            query = '%s.id %s %%s' % (table_alias, operator)
-            params = right
-
         else:
             need_wildcard = operator in ('like', 'ilike', 'not like', 'not ilike')
             sql_operator = {'=like': 'like', '=ilike': 'ilike'}.get(operator, operator)