diff --git a/rocketchat.cpp b/rocketchat.cpp
index 359ad362f89414bba88323ebe3fb21d98297e3ca..1c11283d5e826486efc3789738365f7fae6fd44e 100755
--- a/rocketchat.cpp
+++ b/rocketchat.cpp
@@ -87,7 +87,7 @@ RocketChat::RocketChat( QGuiApplication *app )
 #endif
     qRegisterMetaType<ConnectionState>( "ConnectionState" );
     qRegisterMetaType<Qt::ApplicationState>( "Qt::ApplicationState" );
-    qInstallMessageHandler( customOutput );
+    // qInstallMessageHandler( customOutput );
 }
 
 RocketChat::~RocketChat()
diff --git a/rocketchatserver.cpp b/rocketchatserver.cpp
index fbd050e04f2a18fad536c2dff4738e0c4c257773..539f09fb070aef4f9709c4a7a987f14c64b8d434 100755
--- a/rocketchatserver.cpp
+++ b/rocketchatserver.cpp
@@ -981,11 +981,20 @@ void RocketChatServerData::handleChannelMessage( const QJsonObject &pMessage )
             if ( firstArg == QStringLiteral( "insert" ) || firstArg == QStringLiteral( "inserted" ) ) {
                 QJsonObject newChannel = args[1].toObject();
 
-                if ( newChannel.contains( QStringLiteral( "name" ) ) && newChannel.contains( QStringLiteral( "rid" ) ) && newChannel.contains( "t" ) ) {
+                if ( newChannel.contains( QStringLiteral( "name" ) ) && ( newChannel.contains( QStringLiteral( "rid" ) ) || newChannel.contains( QStringLiteral( "_id" ) ) ) && newChannel.contains( "t" ) ) {
                     QString name = newChannel[QStringLiteral( "name" )].toString();
-                    QString rid = newChannel[QStringLiteral( "rid" )].toString();
+                    QString rid;
 
-                    if ( !mChannels->contains( QStringLiteral( "id" ) ) ) {
+                    if ( newChannel.contains( "rid" ) ) {
+                        rid = newChannel[QStringLiteral( "rid" )].toString();
+                    } else if ( newChannel.contains( QStringLiteral( "_id" ) ) ) {
+                        rid = newChannel[QStringLiteral( "_id" )].toString();
+                    } else {
+                        qWarning() << "invalid channel inserted message";
+                        return ;
+                    }
+
+                    if ( !mChannels->contains( rid ) ) {
                         auto channel  = mChannelService->createChannelObject( rid, name, newChannel["t"].toString() );
 
                         if ( !channel.isNull() ) {
@@ -1001,7 +1010,17 @@ void RocketChatServerData::handleChannelMessage( const QJsonObject &pMessage )
             } else if ( firstArg == QStringLiteral( "updated" ) ) {
                 QJsonObject data = args[1].toObject();
                 int unread = data[QStringLiteral( "unread" )].toInt();
-                QString rid = data[QStringLiteral( "rid" )].toString();
+                QString rid;
+
+                if ( data.contains( "rid" ) ) {
+                    rid = data[QStringLiteral( "rid" )].toString();
+                } else if ( data.contains( QStringLiteral( "_id" ) ) ) {
+                    rid = data[QStringLiteral( "_id" )].toString();
+                } else {
+                    qWarning() << "invalid channel update message";
+                    return ;
+                }
+
                 QString type = data[QStringLiteral( "t" )].toString();
                 bool blocked = false;
                 QString name = data[QStringLiteral( "name" )].toString();