I'm guessing here that you are not calling SQLite directly but are using some kind of wrapper. Would you divulge which one? Depending in the answer, you would be better off asking in that wrappers' forum. Can you replicate the problem using just the SQlite shell, e.g. BEGIN; SELECT count() FROM table; SELECT count() from (DELETE FROM table RETURNING 1); COMMIT; and checking that both counts match?