diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
index 5f44530b2db952970dac3e92ffea3fd8fb8cdef6..c9a7f93d7d840a62af08b13643d159feec925fd4 100644
--- a/sql/ha_ndbcluster.cc
+++ b/sql/ha_ndbcluster.cc
@@ -7104,7 +7104,7 @@ void ndb_serialize_cond(const Item *item, void *arg)
             Check that the field is part of the table of the handler
             instance and that we expect a field with of this result type.
           */
-          if (context->table == field->table)
+          if (context->table->s == field->table->s)
           {       
             const NDBTAB *tab= (const NDBTAB *) context->ndb_table;
             DBUG_PRINT("info", ("FIELD_ITEM"));
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 3d92be5e9d24ae0ae1273ee82e425079027108b3..9947ea4ba339f25a46ff4b8d0993fa4db6804bed 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -230,6 +230,8 @@ void Item_func::traverse_cond(Cond_traverser traverser,
       (*traverser)(this, argument);
     }
   }
+  else
+    (*traverser)(this, argument);
 }