diff --git a/src/database/queue.c b/src/database/queue.c
index a9aba9847a8a44bd977e01c7be86d6f86c34229c..2486074a8290fd5b32381d2e1862e62f12b0e335 100644
--- a/src/database/queue.c
+++ b/src/database/queue.c
@@ -35,6 +35,19 @@ sqlite_just_exec(database_queue_flat,           "UPDATE queue SET priority = 1;"
 #undef sqlite_just_exec
 // *INDENT-ON*
 
+static inline void
+__queue_resequence(volatile sqlite3 *db)
+{
+    static const char *SQL =
+        "UPDATE " LKT_PROTECTED_DATABASE ".sqlite_sequence SET seq = (SELECT COUNT(*) FROM queue) WHERE name = 'queue';";
+    SQLITE_EXEC(db, SQL, error);
+    LOG_INFO("DB", "Re-sequenced the queue");
+    return;
+error:
+    LOG_ERROR("DB", "Failed to update the " LKT_PROTECTED_DATABASE ".sqlite_sequence table...");
+    return;
+}
+
 bool
 database_queue_set_paused(volatile sqlite3 *db, bool paused)
 {
@@ -148,7 +161,7 @@ __queue_reorder(volatile sqlite3 *db)
         " ORDER BY priority DESC, position ASC;"
         "DELETE FROM queue WHERE position > " CURRENT_POS_OR_0 ";"
         /* Update the sqlite_sequence table */
-        "UPDATE sqlite_sequence SET seq = " CURRENT_POS_OR_0 " WHERE name = 'queue';"
+        "UPDATE " LKT_PROTECTED_DATABASE ".sqlite_sequence SET seq = " CURRENT_POS_OR_0 " WHERE name = 'queue';"
         /* Insert back */
         "INSERT INTO queue (position, kara_id, priority)"
         " SELECT position + " CURRENT_POS_OR_0 ", kara_id, priority"
@@ -304,7 +317,7 @@ database_queue_del_id(volatile sqlite3 *db, int id)
         "INSERT INTO queue_tmp(priority, position, kara_id) SELECT priority, position, kara_id FROM queue ORDER BY position ASC;"
         "DELETE FROM queue;"
         "INSERT INTO queue(priority, position, kara_id) SELECT priority, ROW_NUMBER() OVER(ORDER BY position ASC), kara_id FROM queue_tmp;"
-        "UPDATE sqlite_sequence SET seq = (SELECT COUNT(*) FROM queue) WHERE name = 'queue';"   /* Update the sqlite_sequence            */
+        "UPDATE " LKT_PROTECTED_DATABASE ".sqlite_sequence SET seq = (SELECT COUNT(*) FROM queue) WHERE name = 'queue';"   /* Update the sqlite_sequence            */
         /* Clear the TMP */
         "DELETE FROM queue_tmp;"
         "DELETE FROM sqlite_sequence WHERE name = 'queue_tmp';"
@@ -312,6 +325,7 @@ database_queue_del_id(volatile sqlite3 *db, int id)
     char SQL[LKT_MAX_SQLITE_STATEMENT];
     safe_snprintf(SQL, LKT_MAX_SQLITE_STATEMENT, SQL_TEMPLATE, id, id);
     SQLITE_EXEC(db, SQL, error);
+    __queue_resequence(db);
     return true;
 error:
     SQLITE_DO_ROLLBACK(db);
@@ -344,13 +358,13 @@ database_queue_del_pos(volatile sqlite3 *db, int pos)
         "  FROM queue;"
         /* Re-init positions in the queue */
         "DELETE FROM queue;"
-        "DELETE FROM sqlite_sequence WHERE name = 'queue';"
+        "DELETE FROM " LKT_PROTECTED_DATABASE ".sqlite_sequence WHERE name = 'queue';"
         /* Insert back all karas */
         "INSERT INTO queue (kara_id, priority, position)"
         "  SELECT kara_id, priority, position"
         "  FROM queue_tmp;"
         /* Slap correct values here */
-        "UPDATE sqlite_sequence"
+        "UPDATE " LKT_PROTECTED_DATABASE ".sqlite_sequence"
         "  SET seq = (SELECT COUNT(position) FROM queue)"
         "  WHERE name = 'queue';"
         "DELETE FROM queue_tmp;"
@@ -369,6 +383,7 @@ database_queue_del_pos(volatile sqlite3 *db, int pos)
 error_in_delete_or_update:
     if (sta) {
         /* Commit transaction, if failed use a magnificient goto... */
+        __queue_resequence(db);
         SQLITE_EXEC(db, "END TRANSACTION;", error_rollback);
     }
 
@@ -510,7 +525,7 @@ database_queue_swap(volatile sqlite3 *db, int from, int to)
     static const char *SQL_POP_ROW_2 =
         "DELETE FROM queue WHERE position = ?;";
     static const char *SQL_SLAP_MAX =
-        "UPDATE sqlite_sequence"
+        "UPDATE " LKT_PROTECTED_DATABASE ".sqlite_sequence"
         "  SET seq = (SELECT COUNT(position) FROM queue)"
         "  WHERE name = 'queue';";
     static const char *SQL_PUSH_ROW =
@@ -616,7 +631,7 @@ database_queue_move(volatile sqlite3 *db, int from, int to)
         "       WHERE kara_id=(SELECT kara_id FROM queue WHERE position = current))"
         "    ELSE NULL END;"
         "DELETE FROM queue;"
-        "DELETE FROM sqlite_sequence WHERE name = 'queue';"
+        "DELETE FROM " LKT_PROTECTED_DATABASE ".sqlite_sequence WHERE name = 'queue';"
         "INSERT INTO queue(position, kara_id, priority)"
         "  SELECT position, kara_id, priority FROM queue_tmp ORDER BY priority, position;"
         /* Clean queue_tmp */
@@ -797,7 +812,7 @@ database_queue_shuffle(volatile sqlite3 *db)
         "  ORDER BY RANDOM();"
         /* Do the insertion in the other way */
         "DELETE FROM queue;"
-        "DELETE FROM sqlite_sequence WHERE name = 'queue';"
+        "DELETE FROM " LKT_PROTECTED_DATABASE ".sqlite_sequence WHERE name = 'queue';"
         "INSERT INTO queue (position, kara_id, priority)"
         "  SELECT position, kara_id, priority"
         "  FROM queue_tmp"