diff --git a/addons/mail/static/src/js/chat_manager.js b/addons/mail/static/src/js/chat_manager.js
index 2cf6090871f1397860c40529b70a8691ac20cc06..dbadbb47bb9f392ef6ccab749c7cb6512c98f818 100644
--- a/addons/mail/static/src/js/chat_manager.js
+++ b/addons/mail/static/src/js/chat_manager.js
@@ -936,9 +936,9 @@ var chat_manager = {
         if (res_model === "res.partner") {
             var domain = [["partner_id", "=", res_id]];
             UserModel.call("search", [domain]).then(function (user_ids) {
-                if (user_ids.length && user_ids[0] !== session.uid) {
-                    self.create_channel(res_id, 'dm').then(dm_redirection_callback || function () {});
-                } else if (!user_ids.length) {
+                if (user_ids.length && user_ids[0] !== session.uid && dm_redirection_callback) {
+                    self.create_channel(res_id, 'dm').then(dm_redirection_callback);
+                } else {
                     redirect_to_document(res_model, res_id);
                 }
             });
diff --git a/addons/mail/static/src/js/chatter.js b/addons/mail/static/src/js/chatter.js
index 646951df16396fd12679af0b6992979a88f6b69b..0b06d300679ad25386379304f675bd289ad17d38 100644
--- a/addons/mail/static/src/js/chatter.js
+++ b/addons/mail/static/src/js/chatter.js
@@ -310,7 +310,7 @@ var Chatter = form_common.AbstractField.extend({
         this.followers = this.field_manager.fields.message_follower_ids;
         if (this.followers) {
             this.$('.o_chatter_topbar').append(this.followers.$el);
-            this.followers.on('redirect', this, this.on_redirect);
+            this.followers.on('redirect', chat_manager, chat_manager.redirect);
             this.followers.on('followers_update', this, this.on_followers_update);
         }
 
@@ -324,7 +324,7 @@ var Chatter = form_common.AbstractField.extend({
         this.thread.on('toggle_star_status', this, function (message_id) {
             chat_manager.toggle_star_status(message_id);
         });
-        this.thread.on('redirect', this, this.on_redirect);
+        this.thread.on('redirect', chat_manager, chat_manager.redirect);
         this.thread.on('redirect_to_channel', this, this.on_channel_redirect);
 
         this.ready = $.Deferred();
@@ -405,17 +405,6 @@ var Chatter = form_common.AbstractField.extend({
         });
     },
 
-    on_redirect: function (res_model, res_id) {
-        this.do_action({
-            type:'ir.actions.act_window',
-            view_type: 'form',
-            view_mode: 'form',
-            res_model: res_model,
-            views: [[false, 'form']],
-            res_id: res_id,
-        });
-    },
-
     on_followers_update: function (followers) {
         this.mention_suggestions = [];
         var self = this;