diff --git a/myisam/mi_delete.c b/myisam/mi_delete.c
index 3e8ff9db0094c2a1ebb13751af82c3f62590590d..093a94bbf27cbb5440369189a3b77e33e62508bd 100644
--- a/myisam/mi_delete.c
+++ b/myisam/mi_delete.c
@@ -826,8 +826,8 @@ static uint remove_key(MI_KEYDEF *keyinfo, uint nod_flag,
 	  else
 	    get_key_length(rest_length,keypos);
 
-	  if (next_length > prev_length)
-	  {		/* Key after is based on deleted key */
+          /* Key after is based on deleted key */
+          {
 	    uint pack_length,tmp;
 	    bmove_upp((char*) keypos,(char*) (lastkey+next_length),
 		      tmp=(next_length-prev_length));
diff --git a/mysql-test/r/key.result b/mysql-test/r/key.result
index 967ff47e1ead7d8b7d59194858205e7ee343d8c4..e076c59a76c2c07bfcaf9be9908e3ceccc8f00aa 100644
--- a/mysql-test/r/key.result
+++ b/mysql-test/r/key.result
@@ -267,3 +267,26 @@ select t from t1 where t=0xD0B1D0B1212223D0B1D0B1D0B1D0B1;
 t
 ??!"#????
 drop table t1;
+DROP TABLE IF EXISTS t1;
+Warnings:
+Note	1051	Unknown table 't1'
+CREATE TABLE t1 (
+c1 int,
+c2 varbinary(240),
+UNIQUE KEY (c1),
+KEY (c2)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (1,'\Z\Z\Z\Z');
+INSERT INTO t1 VALUES (2,'\Z\Z\Z\Z\Z\Z');
+INSERT INTO t1 VALUES (3,'\Z\Z\Z\Z');
+select c1 from t1 where c2='\Z\Z\Z\Z';
+c1
+1
+3
+DELETE FROM t1 WHERE (c1 = 1);
+select c1 from t1 where c2='\Z\Z\Z\Z';
+c1
+3
+DELETE FROM t1 WHERE (c1 = 3);
+select c1 from t1 where c2='\Z\Z\Z\Z';
+c1
diff --git a/mysql-test/t/key.test b/mysql-test/t/key.test
index ce10f07cf07bcf5b6a68b9f6c10d4eac628afb58..5c365ccf965b0402658b842ca1a1dec70102b2fb 100644
--- a/mysql-test/t/key.test
+++ b/mysql-test/t/key.test
@@ -252,3 +252,22 @@ select c from t1 where c=0xD0B1212223D0B1D0B1D0B1D0B1D0B1;
 select t from t1 where t=0xD0B1D0B1212223D0B1D0B1D0B1D0B1;
 drop table t1;
 
+#
+# BUG#6151 - myisam index corruption
+#
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+  c1 int,
+  c2 varbinary(240),
+  UNIQUE KEY (c1),
+  KEY (c2)
+) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (1,'\Z\Z\Z\Z');
+INSERT INTO t1 VALUES (2,'\Z\Z\Z\Z\Z\Z');
+INSERT INTO t1 VALUES (3,'\Z\Z\Z\Z');
+select c1 from t1 where c2='\Z\Z\Z\Z';
+DELETE FROM t1 WHERE (c1 = 1);
+select c1 from t1 where c2='\Z\Z\Z\Z';
+DELETE FROM t1 WHERE (c1 = 3);
+select c1 from t1 where c2='\Z\Z\Z\Z';
+