diff --git a/spec/chatbox.js b/spec/chatbox.js
index dd8f6ff26c6cf2d1ddc658e6a5c8b9ffc432987b..dc1f81a51536fb16a7ec00cda940b7799e03e129 100644
--- a/spec/chatbox.js
+++ b/spec/chatbox.js
@@ -1182,10 +1182,9 @@
                 }));
 
                 it("will indicate when it has a time difference of more than a day between it and its predecessor",
-
-                mock.initConverseWithPromises(
-                    null, ['rosterGroupsFetched'], {},
-                    function (done, _converse) {
+                    mock.initConverseWithPromises(
+                        null, ['rosterGroupsFetched'], {},
+                        function (done, _converse) {
 
                     test_utils.createContacts(_converse, 'current');
                     test_utils.openControlBox();
@@ -1897,8 +1896,8 @@
                             expect($stanza.children().get(0).tagName).toBe('inactive');
                             expect($stanza.children().get(1).tagName).toBe('no-store');
                             expect($stanza.children().get(2).tagName).toBe('no-permanent-store');
-                            done();
-                        }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL));
+                        }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL))
+                          .then(done);
                     }));
 
                     it("is sent when the user a minimizes a chat box",
diff --git a/src/converse-chatview.js b/src/converse-chatview.js
index 3bf0b477bd9bc8444c1ab148857f93ca33ad4b32..1dd32184558616d5c526aedfa455cb9953404590 100644
--- a/src/converse-chatview.js
+++ b/src/converse-chatview.js
@@ -577,7 +577,10 @@
                         } else {
                             this.showStatusNotification(message.get('fullname')+' '+__('is typing'));
                         }
-                        this.clear_status_timeout = window.setTimeout(this.clearStatusNotification.bind(this), 30000);
+                        this.clear_status_timeout = window.setTimeout(
+                            this.clearStatusNotification.bind(this),
+                            30000
+                        );
                     } else if (message.get('chat_state') === _converse.PAUSED) {
                         if (message.get('sender') === 'me') {
                             this.showStatusNotification(__('Stopped typing on the other device'));
@@ -749,10 +752,16 @@
                     }
                     if (state === _converse.COMPOSING) {
                         this.chat_state_timeout = window.setTimeout(
-                            this.setChatState.bind(this), _converse.TIMEOUTS.PAUSED, _converse.PAUSED);
+                            this.setChatState.bind(this),
+                            _converse.TIMEOUTS.PAUSED,
+                            _converse.PAUSED
+                        );
                     } else if (state === _converse.PAUSED) {
                         this.chat_state_timeout = window.setTimeout(
-                            this.setChatState.bind(this), _converse.TIMEOUTS.INACTIVE, _converse.INACTIVE);
+                            this.setChatState.bind(this),
+                            _converse.TIMEOUTS.INACTIVE,
+                            _converse.INACTIVE
+                        );
                     }
                     if (!no_save && this.model.get('chat_state') !== state) {
                         this.model.set('chat_state', state);
@@ -864,7 +873,7 @@
                     if (_converse.connection.connected) {
                         // Immediately sending the chat state, because the
                         // model is going to be destroyed afterwards.
-                        this.model.set('chat_state', _converse.INACTIVE);
+                        this.setChatState(_converse.INACTIVE);
                         this.sendChatState();
                     }
                     try {
diff --git a/src/converse-core.js b/src/converse-core.js
index 17ccd66e0e9b28eeb4f5c54de992c46fe53aa728..a962e7f447b068eeb03102520438c88688920d62 100755
--- a/src/converse-core.js
+++ b/src/converse-core.js
@@ -170,8 +170,6 @@
         } else if (level === Strophe.LogLevel.WARN) {
             if (_converse.debug) {
                 logger.warn(`${prefix} ${moment().format()} WARNING: ${message}`, style);
-            } else {
-                logger.warn(`${prefix} WARNING: ${message}`, style);
             }
         } else if (level === Strophe.LogLevel.FATAL) {
             if (_converse.debug) {
@@ -249,7 +247,9 @@
             // out or disconnecting in the previous session.
             // This happens in tests. We therefore first clean up.
             Backbone.history.stop();
+            _converse.chatboxviews.closeAllChatBoxes();
             delete _converse.controlboxtoggle;
+            delete _converse.chatboxviews;
             _converse.connection.reset();
             _converse.off();
             _converse.stopListening();