- deregisterhook(HOOK_CORE_STATSREQUEST, dbstatus);
- deleteschedule(processsched, &sqlitequeueprocessor, NULL);
-
- /* we assume every module that's being unloaded
- * has us as a dependency and will have cleaned up
- * their queries by using freeid..
- */
- for(q=head;q;q=nq) {
- nq = q->next;
- sqlite3_finalize(q->statement);
- nsfree(POOL_SQLITE, q);
+ if(sqliteconnected()) {
+ deregisterhook(HOOK_CORE_STATSREQUEST, dbstatus);
+ deleteschedule(processsched, &sqlitequeueprocessor, NULL);
+
+ /* we assume every module that's being unloaded
+ * has us as a dependency and will have cleaned up
+ * their queries by using freeid..
+ */
+ for(q=head;q;q=nq) {
+ nq = q->next;
+ sqlite3_finalize(q->statement);
+ nsfree(POOL_SQLITE, q);
+ }
+
+ sqlite3_close(conn);
+
+ dbconnected = 0;