diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc
index 9f7c0bc0b0c8912d0d40247501f69489e9f30923..790b80eb127ddb7416fbda4f7a3d1c89b9249c4f 100644
--- a/sql/sql_prepare.cc
+++ b/sql/sql_prepare.cc
@@ -671,8 +671,6 @@ static bool mysql_test_select_fields(PREP_STMT *stmt, TABLE_LIST *tables,
     fix_tables_pointers(thd->lex.all_selects_list);
     if (!result && !(result= new select_send()))
     {
-      delete select_lex->having;
-      delete select_lex->where;
       send_error(thd, ER_OUT_OF_RESOURCES);
       DBUG_RETURN(1);
     }
@@ -680,10 +678,10 @@ static bool mysql_test_select_fields(PREP_STMT *stmt, TABLE_LIST *tables,
     JOIN *join= new JOIN(thd, fields, select_options, result);
     thd->used_tables= 0;	// Updated by setup_fields  
 
-  if (join->prepare(&select_lex->ref_pointer_array, tables, 
-		    wild_num, conds, og_num, order, group, having, proc, 
-                    select_lex, unit))
-    DBUG_RETURN(1);
+    if (join->prepare(&select_lex->ref_pointer_array, tables, 
+                      wild_num, conds, og_num, order, group, having, proc, 
+                      select_lex, unit))
+      DBUG_RETURN(1);
     if (send_prep_stmt(stmt, fields.elements) ||
         thd->protocol_simple.send_fields(&fields, 0) ||
 #ifndef EMBEDDED_LIBRARY