diff --git a/src/database/queue.c b/src/database/queue.c
index 8fdd07deafab75e29ac5e679c135c0de86868c47..14c7312b3ea44b0d683d5e246e7d7c6451f6d5ec 100644
--- a/src/database/queue.c
+++ b/src/database/queue.c
@@ -255,7 +255,7 @@ database_queue_del_id(volatile sqlite3 *db, int id)
         "BEGIN TRANSACTION;"
         "CREATE TEMPORARY TABLE queue_tmp (position INTEGER, kara_id INTEGER, priority INTEGER);"
         /* Move the current 'pointer' */
-        "UPDATE queue_state SET current = (SELECT current - COUNT(position) FROM queue JOIN queue_state ON position <= current AND kara_id = %d);"
+        "UPDATE queue_state SET current = (SELECT NULLIF(COUNT(position), 0) FROM queue JOIN queue_state ON position <= current AND kara_id != %d);"
         "DELETE FROM queue WHERE kara_id = %d;"                                                 /* Delete any kara with the specified id */
         "INSERT INTO queue_tmp(priority, position, kara_id) SELECT priority, position, kara_id FROM queue ORDER BY position ASC;"
         "DELETE FROM queue;"