diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result
index 256c4ee6431288de4b7d2f0ec02af4235aa9ab65..fea5754d704354b907418f644a5dd167e43f27b4 100644
--- a/mysql-test/r/range.result
+++ b/mysql-test/r/range.result
@@ -256,12 +256,12 @@ INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
 explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	SIMPLE	t2	ref	j1	j1	4	const	1	Using index
-1	SIMPLE	t1	range	i1	i1	4	NULL	7	Using where; Using index
+1	SIMPLE	t1	index	i1	i1	4	NULL	7	Using where; Using index
 explain select * from t1 force index(i1), t2 force index(j1) where 
 (t1.key1 <t2.keya + 1) and t2.keya=3;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	SIMPLE	t2	ref	j1	j1	4	const	1	Using index
-1	SIMPLE	t1	range	i1	i1	4	NULL	7	Using where; Using index
+1	SIMPLE	t1	index	i1	i1	4	NULL	7	Using where; Using index
 DROP TABLE t1,t2;
 CREATE TABLE t1 (
 a int(11) default NULL,
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 1cbbaf7c3c4c23de1c9ef11a6bfd8cf9fb84fd55..ac25f15d460126e0bee8ca5d3bdf057c425bde05 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -2257,7 +2257,8 @@ inline double get_index_only_read_time(const PARAM* param, ha_rows records,
 			 param->table->file->ref_length) + 1);
   read_time=((double) (records+keys_per_block-1)/
              (double) keys_per_block);
-  return read_time;
+  /* Add 0.01 to avoid cost races between 'range' and 'index' */
+  return read_time + 0.01;
 }
 
 
@@ -7912,6 +7913,8 @@ int QUICK_GROUP_MIN_MAX_SELECT::reset(void)
   file->extra(HA_EXTRA_KEYREAD); /* We need only the key attributes */
   result= file->ha_index_init(index);
   result= file->index_last(record);
+  if (result == HA_ERR_END_OF_FILE)
+    DBUG_RETURN(0);
   if (result)
     DBUG_RETURN(result);
   if (quick_prefix_select && quick_prefix_select->reset())