diff --git a/res/res_config_sqlite.c b/res/res_config_sqlite.c
index 39564100c4bbbb735d4652bb641a15a99fd77898..ef1e1808c0b1808ebaafcf4a45c4510c0bfa876b 100644
--- a/res/res_config_sqlite.c
+++ b/res/res_config_sqlite.c
@@ -686,12 +686,14 @@ static struct sqlite_cache_tables *find_table(const char *tablename)
 		ast_log(LOG_WARNING, "SQLite error %d: %s\n", err, errstr);
 		ast_free(errstr);
 		free_table(tblptr);
+		AST_RWLIST_UNLOCK(&sqlite_tables);
 		return NULL;
 	}
 	ast_mutex_unlock(&mutex);
 
 	if (AST_LIST_EMPTY(&(tblptr->columns))) {
 		free_table(tblptr);
+		AST_RWLIST_UNLOCK(&sqlite_tables);
 		return NULL;
 	}