diff --git a/assets/stylesheets/matrixchat.scss b/assets/stylesheets/matrixchat.scss
index a3d2a33bb2264c0f1412fbb95e801421c72895fc..79f3b59ed208af1095e88d00f32cc2fdda1ccbb5 100644
--- a/assets/stylesheets/matrixchat.scss
+++ b/assets/stylesheets/matrixchat.scss
@@ -1,3 +1,7 @@
+div.matrix-chat-button {
+  text-align: center;
+}
+
 div.matrix-loading {
   height: 64px;
   text-align: center;
diff --git a/controllers/matrix_chat.php b/controllers/matrix_chat.php
index da0c589b281b125d8e19062f7fe124c5092ccfe9..4fa86ce47504f052a1f1e29b3b5dbe58e283530d 100644
--- a/controllers/matrix_chat.php
+++ b/controllers/matrix_chat.php
@@ -48,14 +48,7 @@ class MatrixChatController extends AuthenticatedController
         if ($member->visible == 'yes' || $member->visible == 'unknown' && Config::get()->USER_VISIBILITY_UNKNOWN) {
 
             if (!Config::get()->MATRIX_AUTO_CREATE_ACCOUNTS) {
-                PageLayout::postInfo(
-                    sprintf(
-                        dgettext('matrix', 'Sollten Sie sich noch nie beim Chat angemeldet haben, ' .
-                            'tun Sie dies bitte jetzt und %sladen danach die Seite neu%s.'),
-                        '<a href="" title="' . dgettext('matrix', 'Seite neu laden') . '">',
-                        '</a>'
-                    )
-                );
+                $this->showAccountHint = true;
             }
 
             // Check if current user has a Matrix account.
@@ -81,8 +74,10 @@ class MatrixChatController extends AuthenticatedController
                 } else {
                     $this->hasToCreate = false;
 
-                    //$room->requireMembership($this->account->getLinkedAccount());
-                    $room->requireInvitation($this->account->getLinkedAccount());
+                    if ($this->account) {
+                        //$room->requireMembership($this->account->getLinkedAccount());
+                        $invited = $room->requireInvitation($this->account->getLinkedAccount());
+                    }
                 }
             }
 
diff --git a/models/MatrixRoom.php b/models/MatrixRoom.php
index 4df890f5c3307899c4e4d93e5948dd0c7af1ea93..8bb3df9d0cd73ab8370857d3dc691ebb96086f16 100644
--- a/models/MatrixRoom.php
+++ b/models/MatrixRoom.php
@@ -184,6 +184,8 @@ class MatrixRoom extends SimpleORMap
             // Set correct permission for current user.
             MatrixClient::get()->setRoomUserPermissionLevels($sysaccount, $this->getLinkedRoom(), $permissions);
         }
+
+        return $invited;
     }
 
 }
\ No newline at end of file
diff --git a/views/matrix_chat/index.php b/views/matrix_chat/index.php
index 22e333a3dd44592fc116692c9668a935d08375b4..6eef61a56e637b1ff6f471aae359151303e16e23 100644
--- a/views/matrix_chat/index.php
+++ b/views/matrix_chat/index.php
@@ -1,3 +1,27 @@
+<? if ($showAccountHint) : ?>
+    <div class="messagebox messagebox_warning">
+        <p>
+            <?= dgettext('matrix', 'Sie müssen sich bereits erstmalig im Chat angemeldet haben, ' .
+                'damit Ihre Kennung dort angelegt wurde und Sie in den Chatraum dieser Veranstaltung eingeladen ' .
+                'werden können. Aus Datenschutzgründen ist es nicht möglich, Ihre Kennung dort automatisch zu ' .
+                'ermitteln.') ?>
+        </p>
+        <p>
+            <?= dgettext('matrix', 'Wenn Sie also noch nie im Element-Chat eingeloggt waren:') ?>
+            <br>
+            <?= sprintf(dgettext('matrix', '%sBitte rufen Sie den Chat auf%s und ' .
+                'klicken dort auf "Mit SAML fortfahren", um sich per WebSSO einzuloggen. Wenn Sie danach diese Seite ' .
+                'neu laden oder später nochmals aufrufen, erhalten Sie eine Einladung in den Chatraum dieser ' .
+                'Veranstaltung.'),
+                '<a href="' . Config::get()->MATRIX_CHATSERVER_URL . '" title="Chat" target="_blank">',
+                '</a>') ?>
+        </p>
+        <p>
+            <?= dgettext('matrix', 'Nach dem ersten Login können Sie problemlos beliebige ' .
+                'Chatclients für Matrix verwenden.') ?>
+        </p>
+    </div>
+<? endif ?>
 <? if (!$account && Config::get()->MATRIX_AUTO_CREATE_ACCOUNTS) : ?>
     <form class="default" action="<?= $controller->link_for('matrix_chat/create_account') ?>" method="post">
         <? if ($no_account_wanted) : ?>
@@ -21,5 +45,11 @@
         <?= Assets::img('ajax-indicator-black.svg') ?>
     </div>
 <? elseif (!$noChat) : ?>
-    <iframe src="<?php echo htmlReady(Config::get()->MATRIX_CHATSERVER_URL) ?>" width="100%" height="100%"></iframe>
+    <div class="matrix-chat-button">
+        <?= Studip\LinkButton::create(
+                dgettext('matrix', 'Chat öffnen'),
+                Config::get()->MATRIX_CHATSERVER_URL,
+                ['target' => '_blank']
+        ) ?>
+    </div>
 <? endif;