=== added file 'mysql-test/suite/ndb/r/ndb_hidden_pk.result'
--- a/mysql-test/suite/ndb/r/ndb_hidden_pk.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/ndb/r/ndb_hidden_pk.result	2008-06-26 09:35:14 +0000
@@ -0,0 +1,265 @@
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+attr1 INT
+) ENGINE=ndbcluster;
+insert into t1 values (0), (1), (2), (3), (4), (1), (1), (1), (2), (2), (2), (3), (3), (3), (NULL), (NULL), (NULL);
+select * from t1 order by attr1;
+attr1
+NULL
+NULL
+NULL
+0
+1
+1
+1
+1
+2
+2
+2
+2
+3
+3
+3
+3
+4
+select * from t1 where attr1 = 1;
+attr1
+1
+1
+1
+1
+select * from t1 where attr1 IS NULL;
+attr1
+NULL
+NULL
+NULL
+select * from t1 where attr1 = 4;
+attr1
+4
+select * from t1 where attr1 = 1000;
+attr1
+update t1 set attr1=7 where attr1=4;
+select * from t1 order by attr1;
+attr1
+NULL
+NULL
+NULL
+0
+1
+1
+1
+1
+2
+2
+2
+2
+3
+3
+3
+3
+7
+update t1 set attr1=10 where attr1=1;
+select * from t1 order by attr1;
+attr1
+NULL
+NULL
+NULL
+0
+2
+2
+2
+2
+3
+3
+3
+3
+7
+10
+10
+10
+10
+update t1 set attr1=20 where attr1 IS NULL;
+select * from t1 order by attr1;
+attr1
+0
+2
+2
+2
+2
+3
+3
+3
+3
+7
+10
+10
+10
+10
+20
+20
+20
+update t1 set attr1=NULL where attr1=20;
+select * from t1 order by attr1;
+attr1
+NULL
+NULL
+NULL
+0
+2
+2
+2
+2
+3
+3
+3
+3
+7
+10
+10
+10
+10
+delete from t1 where attr1=0;
+select * from t1 order by attr1;
+attr1
+NULL
+NULL
+NULL
+2
+2
+2
+2
+3
+3
+3
+3
+7
+10
+10
+10
+10
+delete from t1 where attr1 IS NULL;
+select * from t1 order by attr1;
+attr1
+2
+2
+2
+2
+3
+3
+3
+3
+7
+10
+10
+10
+10
+drop table t1;
+CREATE TABLE t1 (
+b blob
+) ENGINE=ndbcluster;
+Warnings:
+Error	1478	Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
+insert into t1 values (NULL), (NULL), ('Something'), (''), (REPEAT('Lots', 2000));
+select * from t1 order by b;
+b
+NULL
+NULL
+
+LotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLots!
 LotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLots!
 LotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLo!
 tsLotsLo
tsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLot!
 sLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLot!
 sLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsL!
 otsLotsL
otsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLo!
 tsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLo!
 tsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLots!
 LotsLots
LotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsL!
 otsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLotsLots
+Something
+select * from t1 where b IS NULL;
+b
+NULL
+NULL
+select * from t1 where b='Something';
+b
+Something
+select count(*) from t1 where b=REPEAT('Lots', 2000);
+count(*)
+1
+select * from t1 where b='Imaginary';
+b
+drop table t1;
+CREATE TABLE t1 (
+a int,
+b int, 
+UNIQUE(a)
+) ENGINE=NDBCLUSTER;
+insert into t1 values (NULL, NULL), (NULL, NULL), (NULL, 1), (1, 1), (2, 2), (3, 3);
+select * from t1 order by a, b;
+a	b
+NULL	NULL
+NULL	NULL
+NULL	1
+1	1
+2	2
+3	3
+select * from t1 where a IS NULL order by b;
+a	b
+NULL	NULL
+NULL	NULL
+NULL	1
+select * from t1 where a=2;
+a	b
+2	2
+select * from t1 where a=10;
+a	b
+update t1 set b=12 where a=12;
+select * from t1 order by a, b;
+a	b
+NULL	NULL
+NULL	NULL
+NULL	1
+1	1
+2	2
+3	3
+update t1 set b=4 where a=3;
+select * from t1 order by a, b;
+a	b
+NULL	NULL
+NULL	NULL
+NULL	1
+1	1
+2	2
+3	4
+update t1 set b=2 where a=1;
+select * from t1 order by a, b;
+a	b
+NULL	NULL
+NULL	NULL
+NULL	1
+1	2
+2	2
+3	4
+update t1 set b=14 where a IS NULL;
+select * from t1 order by a,b;
+a	b
+NULL	14
+NULL	14
+NULL	14
+1	2
+2	2
+3	4
+delete from t1 where a = 999;
+select * from t1 order by a, b;
+a	b
+NULL	14
+NULL	14
+NULL	14
+1	2
+2	2
+3	4
+delete from t1 where a=3;
+select * from t1 order by a, b;
+a	b
+NULL	14
+NULL	14
+NULL	14
+1	2
+2	2
+delete from t1 where a IS NULL;
+select * from t1 order by a, b;
+a	b
+1	2
+2	2
+drop table t1;

=== added file 'mysql-test/suite/ndb/t/ndb_hidden_pk.test'
--- a/mysql-test/suite/ndb/t/ndb_hidden_pk.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/ndb/t/ndb_hidden_pk.test	2008-06-26 09:35:14 +0000
@@ -0,0 +1,142 @@
+-- source include/have_ndb.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+#
+# ndb_hidden_pk.test
+# Test use of tables with hidden primary key
+#
+
+# Bag of nullable ints
+CREATE TABLE t1 (
+  attr1 INT
+) ENGINE=ndbcluster;
+
+insert into t1 values (0), (1), (2), (3), (4), (1), (1), (1), (2), (2), (2), (3), (3), (3), (NULL), (NULL), (NULL);
+
+# all
+select * from t1 order by attr1;
+
+# many
+select * from t1 where attr1 = 1;
+
+# many NULLs
+select * from t1 where attr1 IS NULL;
+
+# one
+select * from t1 where attr1 = 4;
+
+# none
+select * from t1 where attr1 = 1000;
+
+# Single value update
+update t1 set attr1=7 where attr1=4;
+select * from t1 order by attr1;
+
+
+# Multi value update
+update t1 set attr1=10 where attr1=1;
+select * from t1 order by attr1;
+
+# Multi NULL value update
+update t1 set attr1=20 where attr1 IS NULL;
+select * from t1 order by attr1;
+
+# Put them back...
+update t1 set attr1=NULL where attr1=20;
+select * from t1 order by attr1;
+
+# Single value delete
+delete from t1 where attr1=0;
+select * from t1 order by attr1;
+
+
+# Multi value delete
+delete from t1 where attr1 IS NULL;
+select * from t1 order by attr1;
+
+
+drop table t1;
+
+
+# Hidden primary key and blob only
+CREATE TABLE t1 (
+  b blob
+) ENGINE=ndbcluster;
+
+insert into t1 values (NULL), (NULL), ('Something'), (''), (REPEAT('Lots', 2000));
+
+# all
+select * from t1 order by b;
+
+# many null
+select * from t1 where b IS NULL;
+
+# one
+select * from t1 where b='Something';
+
+# large
+select count(*) from t1 where b=REPEAT('Lots', 2000);
+
+# none
+select * from t1 where b='Imaginary';
+
+drop table t1;
+
+
+# Unique index instead of PK
+#
+CREATE TABLE t1 (
+  a int,
+  b int, 
+  UNIQUE(a)
+) ENGINE=NDBCLUSTER;
+
+
+insert into t1 values (NULL, NULL), (NULL, NULL), (NULL, 1), (1, 1), (2, 2), (3, 3);
+
+# select all
+select * from t1 order by a, b;
+
+# select many null
+select * from t1 where a IS NULL order by b;
+
+# select one
+select * from t1 where a=2;
+
+# select none
+select * from t1 where a=10;
+
+# update none
+update t1 set b=12 where a=12;
+select * from t1 order by a, b;
+
+# update one
+update t1 set b=4 where a=3;
+select * from t1 order by a, b;
+
+# update many
+update t1 set b=2 where a=1;
+select * from t1 order by a, b;
+
+# update many null
+update t1 set b=14 where a IS NULL;
+select * from t1 order by a,b;
+
+# Bug # 37516 had problems with delete via unique index
+# on table with hidden PK
+# delete none
+delete from t1 where a = 999;
+select * from t1 order by a, b;
+
+# delete one
+delete from t1 where a=3;
+select * from t1 order by a, b;
+
+# delete many null
+delete from t1 where a IS NULL;
+select * from t1 order by a, b;
+
+drop table t1;

=== modified file 'sql/ha_ndbcluster.cc'
--- a/sql/ha_ndbcluster.cc	2008-06-16 23:00:01 +0000
+++ b/sql/ha_ndbcluster.cc	2008-06-26 09:35:14 +0000
@@ -3650,29 +3650,30 @@
                                             bool use_active_index)
 {
   DBUG_ENTER("setup_key_ref_for_ndb_record");
-  if (table_share->primary_key != MAX_KEY)
-  {
-    if (use_active_index)
-    {
-      /*
-        Using unique key and getting read before write removal
-        optimisation working. Use key_rec according to this
-        unique index instead of primary key index
-      */
-      *key_rec= m_index[active_index].ndb_unique_record_row;
-    }
-    else
-      *key_rec= m_index[table_share->primary_key].ndb_unique_record_row;
-    *key_row= record;
-    DBUG_VOID_RETURN;
+  if (use_active_index)
+  {
+    /* Use unique key to access table */
+    DBUG_PRINT("info", ("Using unique index (%u)", active_index));
+    *key_rec= m_index[active_index].ndb_unique_record_row;
+    *key_row= record;
+  }
+  else if (table_share->primary_key != MAX_KEY)
+  {
+    /* Use primary key to access table */
+    DBUG_PRINT("info", ("Using primary key"));
+    *key_rec= m_index[table_share->primary_key].ndb_unique_record_row;
+    *key_row= record;
   }
   else
   {
     /* Use hidden primary key previously read into m_ref. */
+    DBUG_PRINT("info", ("Using hidden primary key (%l)", m_ref));
+    /* Can't use hidden pk if we didn't read it first */
+    DBUG_ASSERT(m_read_before_write_removal_used == false);
     *key_rec= m_ndb_hidden_key_record;
     *key_row= (const uchar *)(&m_ref);
-    DBUG_VOID_RETURN;
   }
+  DBUG_VOID_RETURN;
 }
 
 
@@ -10345,6 +10346,8 @@
         ppartitionId=&partitionId;
       }
 
+      DBUG_PRINT("info", ("Generating Pk/Unique key read for range %u",
+                          i));
       if (!(op= pk_unique_index_read_key(active_index,
                                          r->start_key.key,
                                          row_buf, lm,
@@ -10365,6 +10368,8 @@
     const NdbOperation* rangeOp= lastOp ? lastOp->next() : 
       trans->getFirstDefinedOperation();
     
+    DBUG_PRINT("info", ("Executing reads"));
+
     if (execute_no_commit_ie(m_thd_ndb, trans) == 0)
     {
       m_multi_range_result_ptr= buffer->buffer;


