diff --git a/rocketchat.cpp b/rocketchat.cpp
index 58720120de354ad916fc09505fdefab10c0cc8c8..479d04483291f48bf8cb4a118da16caefd2b917f 100755
--- a/rocketchat.cpp
+++ b/rocketchat.cpp
@@ -250,19 +250,19 @@ bool RocketChat::newServerByDomain( const QString &domain )
         auto firstServer = mServerMap.first();
         mServerMap.remove( firstServer->getServerId() );
 
-
-        connect( firstServer, &RocketChatServerData::destroyed, [ &, this, domain]() {
+        auto self = this;
+        connect( firstServer, &RocketChatServerData::destroyed, [ &, self, domain]() {
             qDebug() << "test0";
             qDebug() << "domain: " << domain;
             QString baseUrl = domain;
             QString apiUri = QStringLiteral( "https://" ) + domain + QStringLiteral( "/api/v1" );
             qDebug() << "test1";
-            this->channelModel.clear();
-            this->groupsModel.clear();
-            this->directmodel.clear();
-            this->loginMethodsModel.reset();
+            self->channelModel.clear();
+            self->groupsModel.clear();
+            self->directmodel.clear();
+            self->loginMethodsModel.reset();
 
-            RocketChatServerData *server =  new RocketChatServerData( domain, baseUrl, apiUri, userModel, channelModel, groupsModel, directmodel, messagesModel, loginMethodsModel );
+            RocketChatServerData *server =  new RocketChatServerData( domain, baseUrl, apiUri, self->userModel, self->channelModel, self->groupsModel, self->directmodel, self->messagesModel, self->loginMethodsModel );
             qDebug() << "test2";
             qDebug() << "test3";
             registerServer( server );