diff -rc DBD-SQLite-1.14-orig/dbdimp.c DBD-SQLite-1.14/dbdimp.c *** DBD-SQLite-1.14-orig/dbdimp.c 2007-08-24 04:51:25.000000000 +0200 --- DBD-SQLite-1.14/dbdimp.c 2008-11-10 18:31:53.000000000 +0100 *************** *** 398,405 **** if (imp_sth->retval == SQLITE_ROW) { continue; } ! /* There are bug reports that say this should be sqlite3_reset() */ ! sqlite3_finalize(imp_sth->stmt); sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db)); return -5; } --- 398,404 ---- if (imp_sth->retval == SQLITE_ROW) { continue; } ! sqlite3_reset(imp_sth->stmt); sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db)); return -5; } *************** *** 418,425 **** case SQLITE_DONE: DBIc_ACTIVE_on(imp_sth); sqlite_trace(5, "exec ok - %d rows, %d cols\n", imp_sth->nrow, DBIc_NUM_FIELDS(imp_sth)); return 0; ! /* There are bug reports that say this should be sqlite3_reset() */ ! default: sqlite3_finalize(imp_sth->stmt); sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db)); return -6; } --- 417,423 ---- case SQLITE_DONE: DBIc_ACTIVE_on(imp_sth); sqlite_trace(5, "exec ok - %d rows, %d cols\n", imp_sth->nrow, DBIc_NUM_FIELDS(imp_sth)); return 0; ! default: sqlite3_reset(imp_sth->stmt); sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db)); return -6; } Only in DBD-SQLite-1.14/: dbdimp.c~