diff --git a/src/commands.c b/src/commands.c
index c5ac47f5ae64cefdd1c4e88e278edbb4efbc250c..3ec257a0af4c8b3c7f0f36ee7a3fbdb2b58babc5 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -503,10 +503,10 @@ command_noidle(struct lkt_state *srv, size_t c)
 
 /* Functions for the searchadd and the search mpd commands */
 static bool
-lkt_callback_print_row_v1(void *args, int id, int id_len, const char *sql_row)
+lkt_callback_print_row_v1(struct lkt_state *srv, size_t c, int id, int id_len, const char *sql_row)
 {
-    printf(" . from client %ld:\t%*d:%s\n", ((struct lkt_callback *) args)->c,
-           id_len, id, sql_row);
+    (void) srv;
+    printf(" . from client %ld:\t%*d:%s\n", c, id_len, id, sql_row);
     return true;
 }
 
@@ -514,18 +514,30 @@ static bool
 lkt_callback_send_row_v1(void *_args, int id, int id_len, const char *sql_row)
 {
     struct lkt_callback *args = (struct lkt_callback *) _args;
-    struct lkt_message *out = lkt_message_new();
+    struct lkt_message *out;
+
+    out = lkt_message_new();
     out->data_len = snprintf(out->data, LKT_MESSAGE_MAX, "%*d %s\n", id_len, id, sql_row);
     lkt_state_send(args->srv, args->c, out);
     return true;
 }
 
 static bool
-lkt_callback_insert_v1(void *_args, int id, int id_len, const char *sql_row)
+lkt_callback_send_row_v2(struct lkt_state *srv, size_t c, int id, int id_len, const char *sql_row)
 {
+    struct lkt_message *out = lkt_message_new();
+    out->data_len = snprintf(out->data, LKT_MESSAGE_MAX, "%*d %s\n", id_len, id, sql_row);
+    lkt_state_send(srv, c, out);
+    return true;
+}
+
+static bool
+lkt_callback_insert_v1(struct lkt_state *srv, size_t c, int id, int id_len, const char *sql_row)
+{
+    (void) c;
     (void) sql_row;
     (void) id_len;
-    return database_queue_add_id(((struct lkt_callback *) _args)->srv->db, id, 5);
+    return database_queue_add_id(srv->db, id, 5);
 }
 
 bool
@@ -546,7 +558,7 @@ command_find(struct lkt_state *srv, size_t c, char *cmd_args[LKT_MESSAGE_ARGS_MA
     // Select callback //
     switch (action) {
     case LKT_FND_ACT_RESPOND:
-        search.call = (void(*)(void)) lkt_callback_send_row_v1;
+        search.call = (void(*)(void)) lkt_callback_send_row_v2;
         break;
     case LKT_FND_ACT_PRINT:
         search.call = (void(*)(void)) lkt_callback_print_row_v1;