diff --git a/myisam/rt_index.c b/myisam/rt_index.c
index ad0d593ee0ae36ec64691bf63347cb72867ac4e1..567d91c74be5b6379ded411c1d151f75c191ccaa 100644
--- a/myisam/rt_index.c
+++ b/myisam/rt_index.c
@@ -785,7 +785,7 @@ int rtree_delete(MI_INFO *info, uint keynr, uchar *key, uint key_length)
           goto err1;
       }
       if (ReinsertList.pages)
-        free(ReinsertList.pages);
+        my_free((byte*) ReinsertList.pages, MYF(0));
 
       /* check for redundant root (not leaf, 1 child) and eliminate */
       if ((old_root = info->s->state.key_root[keynr]) == HA_OFFSET_ERROR)
diff --git a/myisam/rt_key.c b/myisam/rt_key.c
index 0980206a2487ccda8281581faa021307082ac978..7cf24c20db780761612bd31f1093bc606bc30067 100644
--- a/myisam/rt_key.c
+++ b/myisam/rt_key.c
@@ -69,7 +69,7 @@ int rtree_delete_key(MI_INFO *info, uchar *page_buf, uchar *key,
   uchar *key_start;
 
   key_start= key - nod_flag;
-  if (nod_flag)
+  if (!nod_flag)
     key_length += info->s->base.rec_reflength;
 
   memmove(key_start, key + key_length, page_size - key_length -
diff --git a/myisam/rt_test.c b/myisam/rt_test.c
index 65613bad47fe5c5f8609a0e2812f3db9bfe0cc74..f5fd2018f010207c1d331c6f90ce64dccf8fe99c 100644
--- a/myisam/rt_test.c
+++ b/myisam/rt_test.c
@@ -55,7 +55,7 @@ int run_test(const char *filename)
   int key_type=HA_KEYTYPE_DOUBLE;
   int key_length=8;
   int null_fields=0;
-  int nrecords=30;
+  int nrecords=300;
   int rec_length=0;
   int uniques=0;
   int i;