diff --git a/src/commands.c b/src/commands.c
index 9f29e29adf6a6a26fcdccaad8d24905dfa3c25e2..3c127f38508d4e297400ac8c814872678a36a7b4 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -112,7 +112,7 @@ command_status(struct lkt_state *srv, size_t c)
     struct lkt_message *out;
     struct lkt_queue_state queue_state;
     struct lkt_win *win;
-    int elapsed, duration;
+    int elapsed, duration, songid = 0;
     const char *play_state;
 
     if (srv == NULL)
@@ -125,6 +125,8 @@ command_status(struct lkt_state *srv, size_t c)
         return false;
     }
 
+    database_queue_current_kara(srv->db, NULL, &songid);
+
     win->get_elapsed(win, &elapsed);
     win->get_duration(win, &duration);
 
@@ -142,11 +144,12 @@ command_status(struct lkt_state *srv, size_t c)
                              "song: %d\n"
                              "playlistlength: %d\n"
                              "elapsed: %d\n"
-                             "duration: %d\n",
+                             "duration: %d\n"
+                             "songid: %d\n",
                              queue_state.volume, queue_state.repeat, queue_state.random,
                              queue_state.single, queue_state.consume, play_state,
                              queue_state.current < 0 ? -1 : queue_state.current - 1,
-                             queue_state.length, elapsed, duration);
+                             queue_state.length, elapsed, duration, songid);
     lkt_state_send(srv, c, out);
 
     return true;
diff --git a/src/main/lkt.c b/src/main/lkt.c
index 846e72915460bd802a64299d93477a7d6f534958..702bc27433ca35f1fb6327ec8dd599e4a167235b 100644
--- a/src/main/lkt.c
+++ b/src/main/lkt.c
@@ -450,7 +450,8 @@ queue_pop__(struct lkt_cmd_args *args)
             goto error;
     }
 
-    //fclose(sock);
+    fclose(sock);
+    sock = lkt_connect();
     if (!songid)
         goto error;
     write_socket_format(sock, "next\ndeleteid %d\n", songid);