diff --git a/src/database/queue.c b/src/database/queue.c
index d961fbaa80533e9d3b563f3ba75ff3870d3f6e0b..2c8ac9307c9ddbe3bb611a1e317589cbe45323e8 100644
--- a/src/database/queue.c
+++ b/src/database/queue.c
@@ -541,6 +541,7 @@ database_queue_swap(volatile sqlite3 *db, int from, int to)
 #undef POP_QUEUE
 
     sta = true;
+    goto error_no_stmt;
 error:
     sqlite3_finalize(stmt);
 error_no_stmt:
diff --git a/src/net/listen.c b/src/net/listen.c
index 8ff1d10ea829c0b69a5e4bf7513ca0fb1f22d859..89617e16313680f1e716ee8fb15003a9575ad5bd 100644
--- a/src/net/listen.c
+++ b/src/net/listen.c
@@ -203,6 +203,8 @@ handle_simple_command(struct lkt_state *srv, size_t c, struct lkt_command cmd)
             err = ! command_move(srv, cmd.args);
         else if (STR_MATCH(cmd.name, "shuffle"))
             err = ! command_shuffle(srv, NULL);
+        else if (STR_MATCH(cmd.name, "swap"))
+            err = ! command_swap(srv, cmd.args);
 
         else if (STR_MATCH(cmd.name, "seek"))
             err = ! command_seek(srv, cmd.args);