Index: src/parse.y ================================================================== --- src/parse.y +++ src/parse.y @@ -167,12 +167,17 @@ temp(A) ::= . {A = 0;} create_table_args ::= LP columnlist conslist_opt(X) RP(E) table_options(F). { sqlite3EndTable(pParse,&X,&E,F,0); } create_table_args ::= AS select(S). { - sqlite3EndTable(pParse,0,0,0,S); - sqlite3SelectDelete(pParse->db, S); + if( pParse->db->init.busy==0 ){ + sqlite3EndTable(pParse,0,0,0,S); + sqlite3SelectDelete(pParse->db, S); + }else{ + sqlite3SelectDelete(pParse->db, S); + sqlite3ErrorMsg(pParse, "corrupt schema"); + } } %type table_options {int} table_options(A) ::= . {A = 0;} table_options(A) ::= WITHOUT nm(X). { if( X.n==5 && sqlite3_strnicmp(X.z,"rowid",5)==0 ){