diff --git a/src/main/lkt.c b/src/main/lkt.c
index 0ec6f25bf6141901f63b5f6cc027375eb58b7335..5d8647b6f637ec98d5a15ef2a609c1799b7f5e78 100644
--- a/src/main/lkt.c
+++ b/src/main/lkt.c
@@ -1,5 +1,6 @@
 #define _POSIX_C_SOURCE 200809L
 
+#include <lektor/defines.h>
 #include <lektor/net.h>
 #include <lektor/cmd.h>
 #include <arpa/inet.h>
@@ -221,11 +222,11 @@ create_socket(const char *host, const char *port)
 static FILE *
 lkt_connect(void)
 {
-    char buff[1024];
-    size_t buff_len = 1024, recv_len;
+    char buff[LKT_MESSAGE_MAX];
+    size_t recv_len;
 
     FILE *sock = create_socket(host, port);
-    recv_len = read_socket(sock, buff, buff_len);
+    recv_len = read_socket(sock, buff, LKT_MESSAGE_MAX);
 
     assert(recv_len > 0);
 
@@ -254,8 +255,8 @@ clear__(struct lkt_cmd_args *args)
 {
     if (args->argc != 0)
         fail("Invalid argument, the clear command takes no arguments");
-    static const char *const cmd__ = "clear\nclose\n";
-    lkt_send_and_exit(cmd__, strlen(cmd__));
+    static const char cmd__[] = "clear\nclose\n";
+    lkt_send_and_exit(cmd__, sizeof(cmd__));
 }
 
 
@@ -264,8 +265,8 @@ next__(struct lkt_cmd_args *args)
 {
     if (args->argc != 0)
         fail("Invalid argument, the next command takes no arguments");
-    static const char *const cmd__ = "next\nclose\n";
-    lkt_send_and_exit(cmd__, strlen(cmd__));
+    static const char cmd__[] = "next\nclose\n";
+    lkt_send_and_exit(cmd__, sizeof(cmd__));    /* In bytes. */
 }
 
 noreturn void
@@ -273,8 +274,17 @@ prev__(struct lkt_cmd_args *args)
 {
     if (args->argc != 0)
         fail("Invalid argument, the previous command takes no arguments");
-    static const char *const cmd__ = "previous\nclose\n";
-    lkt_send_and_exit(cmd__, strlen(cmd__));
+    static const char cmd__[] = "previous\nclose\n";
+    lkt_send_and_exit(cmd__, sizeof(cmd__));    /* In bytes. */
+}
+
+noreturn void
+stop__(struct lkt_cmd_args *args)
+{
+    if (args->argc != 0)
+        fail("Invalid argument, the stop command takes no arguments");
+    static const char cmd__[] = "stop\nclose\n";
+    lkt_send_and_exit(cmd__, sizeof(cmd__));    /* In bytes. */
 }
 
 noreturn void
@@ -287,22 +297,21 @@ play__(struct lkt_cmd_args *args)
     if (args->argc != 0)
         pos = atoi(args->argv[0]);
 
-    static const char *const status__        = "status\n";
-    static const char *const cmd_play__      = "play\nclose\n";
-    static const char *const cmd_play_from__ = "play %d\nclose\n";
-    static const char *const cmd_pause__     = "pause\nclose\n";
+    static const char status__[]        = "status\n";
+    static const char cmd_play__[]      = "play\nclose\n";
+    static const char cmd_play_from__[] = "play %d\nclose\n";
+    static const char cmd_pause__[]     = "pause\nclose\n";
 
-    const size_t buff_len = 1024;
-    char buff[buff_len];
+    char buff[LKT_MESSAGE_MAX];
 
     FILE *sock = lkt_connect();
 
-    if (write_socket(sock, status__, strlen(status__)))
+    if (write_socket(sock, status__, sizeof(status__))) /* In bytes. */
         goto error;
 
     for (;;) {
-        memset(buff, 0, buff_len * sizeof(char));
-        if (read_socket(sock, buff, buff_len - 1) <= 0)
+        memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
+        if (read_socket(sock, buff, LKT_MESSAGE_MAX - 1) <= 0)
             exit(EXIT_FAILURE);
 
         size_t len = strcspn(buff, LKT_KEY_VALUE_SEP);
@@ -312,13 +321,13 @@ play__(struct lkt_cmd_args *args)
 
             if (STR_NMATCH(lkt_skip_key(buff), "stop", 4)) {
                 if (!pos)
-                    lkt_send_and_exit(cmd_play__, strlen(cmd_play__));
+                    lkt_send_and_exit(cmd_play__, sizeof(cmd_play__));  /* In bytes. */
                 else
                     exit(write_socket_format(lkt_connect(), cmd_play_from__, pos));
             }
 
             else
-                lkt_send_and_exit(cmd_pause__, strlen(cmd_pause__));
+                lkt_send_and_exit(cmd_pause__, sizeof(cmd_pause__));    /* In bytes. */
 
             goto error;
         }
@@ -334,30 +343,28 @@ current__(struct lkt_cmd_args *args)
     if (args->argc != 0)
         fail("Invalid argument, the current command takes no arguments");
 
-    static const char *const current_song__ = "currentsong\n";
-    const size_t buff_len = 1024;
-    char buff[buff_len];
+    static const char current_song__[] = "currentsong\n";
+    char buff[LKT_MESSAGE_MAX];
 
     char *mem = NULL;
     FILE *sock = lkt_connect();
 
-    if (write_socket(sock, current_song__, strlen(current_song__)))
+    if (write_socket(sock, current_song__, sizeof(current_song__))) /* In bytes. */
         goto error;
 
-    assert(mem = calloc(6 * buff_len, sizeof(char)));
-    assert(memset(mem, 0, 6 * buff_len * sizeof(char)));
+    assert(mem = calloc(6 * LKT_MESSAGE_MAX, sizeof(char)));
+    assert(memset(mem, 0, 6 * LKT_MESSAGE_MAX * sizeof(char)));
 
     char *const title    = &mem[0];
-    char *const author   = &mem[buff_len];
-    char *const source   = &mem[2 * buff_len];
-    char *const type     = &mem[3 * buff_len];
-    char *const category = &mem[4 * buff_len];
-    char *const language = &mem[5 * buff_len];
-
+    char *const author   = &mem[LKT_MESSAGE_MAX];
+    char *const source   = &mem[2 * LKT_MESSAGE_MAX];
+    char *const type     = &mem[3 * LKT_MESSAGE_MAX];
+    char *const category = &mem[4 * LKT_MESSAGE_MAX];
+    char *const language = &mem[5 * LKT_MESSAGE_MAX];
 
     for (;;) {
-        memset(buff, 0, buff_len * sizeof(char));
-        if (read_socket(sock, buff, buff_len - 1) <= 0)
+        memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
+        if (read_socket(sock, buff, LKT_MESSAGE_MAX - 1) <= 0)
             goto error;
 
         const size_t len = strcspn(buff, LKT_KEY_VALUE_SEP);
@@ -411,8 +418,7 @@ status__(struct lkt_cmd_args *args)
     static const char *const status_str__ = "status\n";
     int ret = EXIT_FAILURE, it = 0;
 
-    const size_t buff_len = 1024;
-    char buff[buff_len];
+    char buff[LKT_MESSAGE_MAX];
     char flags[24];
 
     bool play = false, stopped = true;
@@ -430,8 +436,8 @@ status__(struct lkt_cmd_args *args)
 #define assign_int(str, var) if (! strncmp(buff, str, len)) { var = (atoi(lkt_skip_key(buff))); continue; }
 
     for (;;) {
-        memset(buff, 0, buff_len * sizeof(char));
-        if (read_socket(sock, buff, buff_len - 1) <= 0)
+        memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
+        if (read_socket(sock, buff, LKT_MESSAGE_MAX - 1) <= 0)
             goto error;
 
         size_t len = strcspn(buff, LKT_KEY_VALUE_SEP);
@@ -519,8 +525,7 @@ check:
 noreturn void
 add__(struct lkt_cmd_args *args)
 {
-    const size_t buff_len = 1025;
-    char buff[buff_len];
+    char buff[LKT_MESSAGE_MAX];
     int i;
 
     if (args->argc < 1)
@@ -545,8 +550,8 @@ add__(struct lkt_cmd_args *args)
     write_socket(sock, "\n", sizeof(char));
 
     for (;;) {
-        memset(buff, 0, buff_len * sizeof(char));
-        assert(read_socket(sock, buff, buff_len - 1) > 0);
+        memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
+        assert(read_socket(sock, buff, LKT_MESSAGE_MAX - 1) > 0);
 
         if (! strncmp(buff, "OK", 2))
             exit(EXIT_SUCCESS);
@@ -559,8 +564,7 @@ add__(struct lkt_cmd_args *args)
 noreturn void
 list__(struct lkt_cmd_args *args)
 {
-    const size_t buff_len = 1025;
-    char buff[buff_len];
+    char buff[LKT_MESSAGE_MAX];
 
     if (args->argc == 0)
         args->argv = LKT_QUEUE_DEFAULT;
@@ -575,8 +579,8 @@ list__(struct lkt_cmd_args *args)
     write_socket(sock, "\n", sizeof(char));
 
     for (;;) {
-        memset(buff, 0, buff_len * sizeof(char));
-        assert(read_socket(sock, buff, buff_len - 1) > 0);
+        memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
+        assert(read_socket(sock, buff, LKT_MESSAGE_MAX - 1) > 0);
 
         if (! strncmp(buff, "OK", 2))
             exit(EXIT_SUCCESS);
@@ -708,8 +712,7 @@ search_with_cmd__(struct lkt_cmd_args *args, const char *cmd)
         fail("Invalid type for the query");
 
     FILE *sock = lkt_connect();
-    const size_t buff_len = 1025;
-    char buff[buff_len];
+    char buff[LKT_MESSAGE_MAX];
     int i;
 
     write_socket(sock, cmd, strlen(cmd));
@@ -719,8 +722,8 @@ search_with_cmd__(struct lkt_cmd_args *args, const char *cmd)
     write_socket(sock, "\n", sizeof("\n") / sizeof(char));
 
     for (;;) {
-        memset(buff, 0, buff_len * sizeof(char));
-        assert(read_socket(sock, buff, buff_len - 1) > 0);
+        memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
+        assert(read_socket(sock, buff, LKT_MESSAGE_MAX - 1) > 0);
 
         if (! strncmp(buff, "OK", 2))
             exit(EXIT_SUCCESS);
@@ -807,6 +810,7 @@ static struct lkt_cmd_opt options_[] = {
     { .name = "add",        .call = add__     },
     { .name = "shuffle",    .call = shuffle__ },
     { .name = "status",     .call = status__  },
+    { .name = "stop",       .call = stop__    },
     { .name = "plt",        .call = plt__     },
     { .name = "search",     .call = search__  },
     LKT_OPT_NULL,