diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 20b796bb1ba209dbb5059eccf75f059b7416d839..be931c56247e74335876f4c24eef9df2fd36967b 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -296,7 +296,7 @@ class st_select_lex_unit: public st_select_lex_node {
 
   select_result *result;
   int res;
-  ulong describe, found_rows_for_union;
+  ulong found_rows_for_union;
   bool  prepared, // prepare phase already performed for UNION (unit)
     optimized, // optimize phase already performed for UNION (unit)
     executed, // already executed
diff --git a/sql/sql_union.cc b/sql/sql_union.cc
index de2bb4a786c6345745d3b6b1f4137cbf26ae56b9..93541d66d6599c4359cfef3777af74fbf8a4b0ec 100644
--- a/sql/sql_union.cc
+++ b/sql/sql_union.cc
@@ -377,11 +377,12 @@ int st_select_lex_unit::exec()
       offset_limit_cnt= global_parameters->offset_limit;
       select_limit_cnt= global_parameters->select_limit +
 	global_parameters->offset_limit;
+
       if (select_limit_cnt < global_parameters->select_limit)
 	select_limit_cnt= HA_POS_ERROR;		// no limit
       if (select_limit_cnt == HA_POS_ERROR)
 	options&= ~OPTION_FOUND_ROWS;
-      else if (found_rows_for_union && !describe)
+      else if (found_rows_for_union && !thd->lex.describe)
 	options|= OPTION_FOUND_ROWS;
       fake_select_lex->ftfunc_list= &empty_list;
       fake_select_lex->table_list.link_in_list((byte *)&result_table_list,