diff --git a/.clang-format b/.clang-format
index c0ec36362def0d623e2c26ac2a389b5439879560..cd8dadb006b331927d66b705e630f7ca3c7d0e5d 100644
--- a/.clang-format
+++ b/.clang-format
@@ -63,6 +63,7 @@ ForEachMacros:
   - 'for_each'
   - 'for_ever'
   - 'forever'
+  - 'unless'
   - 'FOR_EVER_IF'
   - 'FOR_EVER_UNTIL'
   - 'FOR_EACH_FLAT_LIST_ITEM'
diff --git a/inc/lektor/queue.h b/inc/lektor/queue.h
index 2c2a0715caf537ff7f012bfb59f300ec9409f746..2fed6c9af92831ce514ab2bacc4acf5c1d6c0f44 100644
--- a/inc/lektor/queue.h
+++ b/inc/lektor/queue.h
@@ -84,11 +84,11 @@ lkt_queue_new(struct queue *ret)
 
     pthread_mutex_t mxt = PTHREAD_MUTEX_INITIALIZER;
     struct queue _ret   = {
-        .contents  = LKT_ALLOC_ARRAY(lkt_event, LKT_DEFAULT_LIST_SIZE),
-        .size      = LKT_DEFAULT_LIST_SIZE,
-        .last      = 0,
-        .available = 0,
-        .lock      = mxt,
+          .contents  = LKT_ALLOC_ARRAY(lkt_event, LKT_DEFAULT_LIST_SIZE),
+          .size      = LKT_DEFAULT_LIST_SIZE,
+          .last      = 0,
+          .available = 0,
+          .lock      = mxt,
     };
 
     *ret = _ret;
diff --git a/src/base/common.c b/src/base/common.c
index b5ad9e9d4c462fbd990ffcd4a6a93c033f8ef0cd..e781aa57a67b5b0b7b9b237c0cdadaeb5de426b8 100644
--- a/src/base/common.c
+++ b/src/base/common.c
@@ -43,8 +43,8 @@ __set_assert(void)
 
 /* Log functions */
 
-static LOG_LEVEL ___log_level             = ___LAST_UNUSED_LOG_LEVEL; /* All by default */
-extern struct lkt_logfile *___log_logfile; /* Use the logfile globaly */
+static LOG_LEVEL ___log_level = ___LAST_UNUSED_LOG_LEVEL; /* All by default */
+extern struct lkt_logfile *___log_logfile;                /* Use the logfile globaly */
 
 void
 lkt_set_log_level(LOG_LEVEL lvl)
diff --git a/src/base/config.c b/src/base/config.c
index e563b00913ec42037e406918b953d00a91161272..7e51e6763b36d08ed18a315ef296f4765b46c54d 100644
--- a/src/base/config.c
+++ b/src/base/config.c
@@ -276,7 +276,7 @@ config_new(lkt_db *db, const char *conf)
     }
 
     LOG_INFO("CONFIG", "Ensure that optional fields are present: set then to default "
-             "value if not present");
+                       "value if not present");
     database_config_set_optional_fields(db);
 
     return 0;
diff --git a/src/base/logfile.c b/src/base/logfile.c
index 5893f392e8acfec43b6c6e2b4102837a12cac3cf..d9a621ef2987647367778035f6637200ea2bf95d 100644
--- a/src/base/logfile.c
+++ b/src/base/logfile.c
@@ -3,7 +3,7 @@
 #include <lektor/logfile.h>
 
 struct lkt_logfile {
-    const char *base_folder;            /* Allocated, must be freed */
+    const char *base_folder; /* Allocated, must be freed */
     const unsigned int file_count;
     const unsigned int line_count;
     int current_fd;                     /* The <folder/1> file */
@@ -22,12 +22,11 @@ ___close_global_logfile()
     }
 }
 
-
 PRIVATE_FUNCTION unsigned int
 ___count_lines_in_file(const char *file)
 {
     unsigned int lines = 0u;
-    FILE *fd = fopen(file, "r");
+    FILE *fd           = fopen(file, "r");
 
     /* Reads should be buffured... */
     while ((fd != NULL) && !feof(fd))
@@ -99,7 +98,7 @@ lkt_logfile_new(lkt_db *db)
     if (file_count < 0 || line_count < 0)
         LOG_FATAL("Negative file or line count in setting for logging");
 
-    struct lkt_logfile *ret = LKT_ALLOC_STRUCT(lkt_logfile);
+    struct lkt_logfile *ret        = LKT_ALLOC_STRUCT(lkt_logfile);
     struct lkt_logfile tmp_logfile = {
         .file_count            = (unsigned int)file_count,
         .line_count            = (unsigned int)line_count,
@@ -111,7 +110,8 @@ lkt_logfile_new(lkt_db *db)
     memcpy(ret, &tmp_logfile, sizeof(struct lkt_logfile));
 
     errno = 0;
-    FAIL_IF(mkdir(base_folder, 0755) && (errno != EEXIST), "Failed to create folder: %s", base_folder);
+    FAIL_IF(mkdir(base_folder, 0755) && (errno != EEXIST), "Failed to create folder: %s",
+            base_folder);
     ___open_all_files(ret);
 
     LOG_INFO("LOG", "Log folder was created at: %s", base_folder);
diff --git a/src/database/config.c b/src/database/config.c
index 83e82e559b0b065da9446d640998c7ca0e913403..ba2a56b796e26bef27b49c997280574cb35240e6 100644
--- a/src/database/config.c
+++ b/src/database/config.c
@@ -10,8 +10,8 @@ database_config_set(lkt_db *db, const char *section, const char *key, const char
     static const char *SQL_STMT = "INSERT OR REPLACE INTO"
                                   " config (section, key, value)"
                                   " VALUES (?, ?, ?);\n";
-    sqlite3_stmt *stmt = 0;
-    bool ret           = false;
+    sqlite3_stmt *stmt          = 0;
+    bool ret                    = false;
     int code;
 
     SQLITE_PREPARE(db, stmt, SQL_STMT, error);
@@ -39,8 +39,8 @@ database_config_get_text(lkt_db *db, const char *section, const char *key, char
     static const char *SQL_STMT = "SELECT value"
                                   " FROM config"
                                   " WHERE section = ? AND key = ?;\n";
-    sqlite3_stmt *stmt = 0;
-    bool ret           = false;
+    sqlite3_stmt *stmt          = 0;
+    bool ret                    = false;
     char *row;
 
     SQLITE_PREPARE(db, stmt, SQL_STMT, error);
@@ -64,8 +64,8 @@ database_config_get_text_nospace(lkt_db *db, const char *section, const char *ke
     static const char *SQL_STMT = "SELECT REPLACE(value, ' ', '')"
                                   " FROM config"
                                   " WHERE section = ? AND key = ?;\n";
-    sqlite3_stmt *stmt = 0;
-    bool ret           = false;
+    sqlite3_stmt *stmt          = 0;
+    bool ret                    = false;
     char *row;
 
     SQLITE_PREPARE(db, stmt, SQL_STMT, error);
@@ -88,8 +88,8 @@ database_config_exists(lkt_db *db, const char *section, const char *key)
     static const char *SQL_STMT = "SELECT value"
                                   " FROM config"
                                   " WHERE section = ? AND key = ?;\n";
-    sqlite3_stmt *stmt = 0;
-    bool ret           = false;
+    sqlite3_stmt *stmt          = 0;
+    bool ret                    = false;
 
     SQLITE_PREPARE(db, stmt, SQL_STMT, error);
     SQLITE_BIND_TEXT(db, stmt, 1, section, error);
@@ -108,8 +108,8 @@ database_config_get_int(lkt_db *db, const char *section, const char *key, int *v
     static const char *SQL_STMT = "SELECT CAST(value AS INTEGER)"
                                   " FROM config"
                                   " WHERE section COLLATE nocase = ? AND key COLLATE nocase = ?;";
-    sqlite3_stmt *stmt = 0;
-    bool ret           = false;
+    sqlite3_stmt *stmt          = 0;
+    bool ret                    = false;
 
     SQLITE_PREPARE(db, stmt, SQL_STMT, error);
     SQLITE_BIND_TEXT(db, stmt, 1, section, error);
@@ -152,9 +152,10 @@ database_config_set_optional_fields(lkt_db *db)
     const char *section = NULL;
 #define section(_sct) section = _sct;
 #define value(name, value)
-#define value_opt(name, value) \
-    if ((section != NULL) && !database_config_exists(db, section, name)) { \
-        FAIL_UNLESS(database_config_set(db, section, name, value), "Failed to set default value for option '%s/%s'", section, name); \
+#define value_opt(name, value)                                                        \
+    if ((section != NULL) && !database_config_exists(db, section, name)) {            \
+        FAIL_UNLESS(database_config_set(db, section, name, value),                    \
+                    "Failed to set default value for option '%s/%s'", section, name); \
         LOG_WARN("CONFIG", "Enforce the option '%s/%s' <- %s", section, name, value); \
     }
 
diff --git a/src/database/find.c b/src/database/find.c
index dc0b1096303fd25faef8e89b9ddff55d069a64df..75be6f608ebc67cb26ab55132b9107364eeb1240 100644
--- a/src/database/find.c
+++ b/src/database/find.c
@@ -79,12 +79,12 @@ database_search_new(struct lkt_state *srv, size_t c, int cont, function_ptr call
     size_t msg_count = srv != NULL ? lkt_remaining_msg(srv, c) - 3 : LKT_DB_DEFAULT_ITERATION_MAX;
     struct lkt_search *ret_ptr = LKT_ALLOC_STRUCT(lkt_search);
     struct lkt_search ret      = {
-        .srv          = srv,
-        .c            = c,
-        .continuation = cont,
-        .msg_count    = (int)msg_count,
-        .call         = call,
-        .stmt         = NULL,
+             .srv          = srv,
+             .c            = c,
+             .continuation = cont,
+             .msg_count    = (int)msg_count,
+             .call         = call,
+             .stmt         = NULL,
     };
 
     *ret_ptr = ret;
@@ -255,10 +255,10 @@ database_search_sticker_init(lkt_db *db, struct lkt_search *ret)
                                        "  SELECT id, sticker, value , 'plt' FROM 'stickers.plt'"
                                        ") AS sts"
                                        "ON sts.sticker = 'stickers'.id";
-    static const char *SQL_one_type = "SELECT name, sts.id, value, '%s' "
-                                      "FROM 'stickers.%s' AS sts "
-                                      "JOIN 'stickers' "
-                                      "ON 'stickers'.id = sts.sticker";
+    static const char *SQL_one_type  = "SELECT name, sts.id, value, '%s' "
+                                       "FROM 'stickers.%s' AS sts "
+                                       "JOIN 'stickers' "
+                                       "ON 'stickers'.id = sts.sticker";
     char SQL[LKT_MAX_SQLITE_STATEMENT];
     ret->type = lkt_search_sticker;
 
@@ -377,8 +377,8 @@ database_kara_by_id(lkt_db *db, int id, struct kara_metadata *res, char filepath
 {
     static const char *SQL = "SELECT song_name, source_name, category, language, author_name, "
                              "song_type, song_number, file_path FROM kara WHERE id = ?;";
-    sqlite3_stmt *stmt = 0;
-    int ret            = false;
+    sqlite3_stmt *stmt     = 0;
+    int ret                = false;
 
     SQLITE_PREPARE(db, stmt, SQL, error);
     SQLITE_BIND_INT(db, stmt, 1, id, error);
diff --git a/src/database/open.c b/src/database/open.c
index dbd88d6a12e85524ab9edc4c4a9a7d37d2846ac0..41058fd1fd68c2037e47733ed502e0498903fb2e 100644
--- a/src/database/open.c
+++ b/src/database/open.c
@@ -152,7 +152,7 @@ __check_schema(lkt_db *db)
                              " ('kara', 'playlist', 'kara_playlist', 'queue', 'users', 'stickers',"
                              "  '''stickers.kara''', '''stickers.plt''', 'updates', 'misc', "
                              "  'kara_type', 'kara_category', 'language');";
-    sqlite3_stmt *stmt = NULL;
+    sqlite3_stmt *stmt     = NULL;
     SQLITE_PREPARE(db, stmt, SQL, error);
     SQLITE_STEP_ROW(db, stmt, error);
     if (9 != sqlite3_column_int(stmt, 0)) {
diff --git a/src/database/playlist.c b/src/database/playlist.c
index 76773601bf3a47a6c91bcf507f7a5a0e52ba1f6e..7d2d5d17ec418fe12271d174395f96a86e214aa1 100644
--- a/src/database/playlist.c
+++ b/src/database/playlist.c
@@ -39,8 +39,8 @@ database_plt_create(lkt_db *db, const char *name)
 {
     static const char *SQL_STMT = "INSERT INTO playlist (name, last_update) "
                                   "VALUES (?, strftime('%s', 'now'));";
-    sqlite3_stmt *stmt = NULL;
-    bool sta           = false;
+    sqlite3_stmt *stmt          = NULL;
+    bool sta                    = false;
     SQLITE_PREPARE(db, stmt, SQL_STMT, error);
     SQLITE_BIND_TEXT(db, stmt, 1, name, error);
     SQLITE_STEP_DONE(db, stmt, error);
@@ -89,8 +89,8 @@ database_plt_clear(lkt_db *db, const char *name)
 {
     static const char *SQL_STMT = "DELETE FROM kara_playlist "
                                   "WHERE playlist_id = (SELECT id FROM playlist WHERE name = ?);";
-    sqlite3_stmt *stmt = NULL;
-    bool sta           = false;
+    sqlite3_stmt *stmt          = NULL;
+    bool sta                    = false;
     SQLITE_PREPARE(db, stmt, SQL_STMT, error);
     SQLITE_BIND_TEXT(db, stmt, 1, name, error);
     SQLITE_STEP_DONE(db, stmt, error);
diff --git a/src/database/queue.c b/src/database/queue.c
index 1fe0c1ea2dbfb3d9760e7d7ed3e66dc10d354856..865d18b0e80f519520809a9ba61e1ab1d4d933ee 100644
--- a/src/database/queue.c
+++ b/src/database/queue.c
@@ -526,6 +526,18 @@ database_queue_skip_current(lkt_db *db, char filepath[PATH_MAX])
     }
 }
 
+/* When playing the previous kara, if the current was a priority 5 and the
+ * prvious a priority 1 we will have a problem on the resequence of the queue.
+ * Thus, we propagate all the priorities > 1 if found after the current to all
+ * the karas from that found kara with a > 1 priority to the current one
+ * included. It only makes sense to call that function from the
+ * 'database_queue_prev' function. */
+PRIVATE_FUNCTION bool
+___database_back_propagate_priority(UNUSED lkt_db *db)
+{
+    return false;
+}
+
 bool
 database_queue_prev(lkt_db *db, char filepath[PATH_MAX])
 {
diff --git a/src/database/update.c b/src/database/update.c
index 81a59cf2ef739511cab348db205bd9d275fcb8fb..8a556ee174701d228cfd23f00c51170550182dc4 100644
--- a/src/database/update.c
+++ b/src/database/update.c
@@ -55,7 +55,7 @@ ___flush_cache_from_disk(lkt_db *db, const char *filename)
                              " SELECT id, file_path"
                              " FROM kara"
                              " WHERE file_path = ?";
-    sqlite3_stmt *stmt = NULL;
+    sqlite3_stmt *stmt     = NULL;
 
     SQLITE_PREPARE(db, stmt, SQL, error);
     SQLITE_BIND_TEXT(db, stmt, 1, filename, error);
@@ -178,8 +178,8 @@ database_update_add(lkt_db *db, const char *kara_path, struct kara_metadata *mdt
                                   "song_type, language, file_path, is_new, author_name, "
                                   "song_number, id, available)"
                                   "SELECT ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?";
-    sqlite3_stmt *stmt = NULL;
-    int ret            = false;
+    sqlite3_stmt *stmt          = NULL;
+    int ret                     = false;
 
     /* From here we initialize the sqlite stmt. */
 
@@ -261,9 +261,9 @@ database_deleted_kara(lkt_db *db, int **kara_id, size_t *len)
 {
     static const char *SQL = "SELECT kara.id, file_path FROM kara WHERE kara.id NOT IN"
                              "(SELECT kara_id FROM updates JOIN misc ON job = update_job);";
-    sqlite3_stmt *stmt = NULL;
-    *kara_id           = LKT_ALLOC_ARRAY(int, LKT_DEFAULT_LIST_SIZE);
-    *len               = 0;
+    sqlite3_stmt *stmt     = NULL;
+    *kara_id               = LKT_ALLOC_ARRAY(int, LKT_DEFAULT_LIST_SIZE);
+    *len                   = 0;
     RETURN_UNLESS(*kara_id, "Out of memory", NOTHING);
     SQLITE_PREPARE(db, stmt, SQL, out);
     size_t size = LKT_DEFAULT_LIST_SIZE;
@@ -333,8 +333,8 @@ database_stats(lkt_db *db, int *authors, int *sources, int *karas)
                              " (SELECT COUNT(DISTINCT author_name) FROM kara),"
                              " (SELECT COUNT(DISTINCT source_name) FROM kara),"
                              " (SELECT COUNT(id) FROM kara);";
-    sqlite3_stmt *stmt = NULL;
-    bool ret_code      = false;
+    sqlite3_stmt *stmt     = NULL;
+    bool ret_code          = false;
 
     SQLITE_PREPARE(db, stmt, SQL, error);
     SQLITE_STEP_ROW(db, stmt, error);