diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c
index 857f24e6..9e98fb07 100644
--- a/src/command/cmd_funcs.c
+++ b/src/command/cmd_funcs.c
@@ -6467,7 +6467,6 @@ cmd_reconnect(ProfWin* window, const char* const command, gchar** args)
     int intval = 0;
     auto_char char* err_msg = NULL;
     if (g_strcmp0(value, "now") == 0) {
-        cons_show("Reconnecting now.");
         cl_ev_reconnect();
     } else if (strtoi_range(value, &intval, 0, INT_MAX, &err_msg)) {
         prefs_set_reconnect(intval);
diff --git a/src/event/client_events.c b/src/event/client_events.c
index e8620234..bccedc97 100644
--- a/src/event/client_events.c
+++ b/src/event/client_events.c
@@ -98,7 +98,14 @@ cl_ev_disconnect(void)
 void
 cl_ev_reconnect(void)
 {
-    if (connection_get_status() != JABBER_DISCONNECTED) {
+    jabber_conn_status_t conn_status = connection_get_status();
+    if (conn_status == JABBER_CONNECTING) {
+        cons_show_error("Reconnection aborted: Connection attempt is already in progress");
+        return;
+    }
+
+    cons_show("Reconnecting now.");
+    if (conn_status != JABBER_DISCONNECTED && conn_status != JABBER_DISCONNECTING) {
         connection_disconnect();
         ev_disconnect_cleanup();
         // on intentional disconnect reset the counter
diff --git a/src/ui/window.c b/src/ui/window.c
index f75e7d06..730859d2 100644
--- a/src/ui/window.c
+++ b/src/ui/window.c
@@ -312,7 +312,10 @@ win_get_title(ProfWin* window)
     {
         const ProfChatWin* chatwin = (ProfChatWin*)window;
         assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK);
-        const PContact contact = roster_get_contact(chatwin->barejid);
+        PContact contact = NULL;
+        if (roster_exists()) {
+            contact = roster_get_contact(chatwin->barejid);
+        }
         if (!contact) {
             return g_strdup(chatwin->barejid);
         }