diff --git a/myisam/ft_boolean_search.c b/myisam/ft_boolean_search.c
index 9b51601be40d22461dc9b1151a2104682bc77ac6..590062598ed68f4b15a4b8ec7b5da1e5093ac305 100644
--- a/myisam/ft_boolean_search.c
+++ b/myisam/ft_boolean_search.c
@@ -263,7 +263,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
   _ftb_parse_query(ftb, &query, query+query_len, ftbe, 0);
   ftb->list=(FTB_WORD **)alloc_root(&ftb->mem_root,
                                      sizeof(FTB_WORD *)*ftb->queue.elements);
-  memcpy(ftb->list, ftb->queue.root, sizeof(FTB_WORD *)*ftb->queue.elements);
+  memcpy(ftb->list, ftb->queue.root+1, sizeof(FTB_WORD *)*ftb->queue.elements);
   qsort2(ftb->list, ftb->queue.elements, sizeof(FTB_WORD *),
                                            (qsort2_cmp)FTB_WORD_cmp_list, 0);
   if (ftb->queue.elements<2) ftb->with_scan=0;
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 82fe4d0c72307c72f2901d90dad74103c1f2674a..32f2e2741329c9e9623688daa47d08cd8766af44 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -1114,7 +1114,8 @@ make_join_statistics(JOIN *join,TABLE_LIST *tables,COND *conds,
 	  } while (keyuse->table == table && keyuse->key == key);
 
 	  if (eq_part == PREV_BITS(uint,table->key_info[key].key_parts) &&
-	      (table->key_info[key].flags & HA_NOSAME))
+	      (table->key_info[key].flags & HA_NOSAME) &&
+              !table->fulltext_searched)
 	  {
 	    if (const_ref == eq_part)
 	    {					// Found everything for ref.