diff --git a/src/skins/vector/css/matrix-react-sdk/structures/FilePanel.css b/src/skins/vector/css/matrix-react-sdk/structures/FilePanel.css
index 5e58d33ebb..2d2fe31c85 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/FilePanel.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/FilePanel.css
@@ -60,7 +60,7 @@ limitations under the License.
 .mx_FilePanel .mx_EventTile .mx_MImageBody_downloadLink {
     flex: 1 1 auto;
     color: #747474;
-    word-break: break-all;
+    word-wrap: break-word;
 }
 
 .mx_FilePanel .mx_EventTile .mx_MImageBody_size {
@@ -88,7 +88,7 @@ limitations under the License.
     font-size: 11px;
     opacity: 1.0;
     color: #acacac;
-    word-break: break-all;
+    word-wrap: break-word;
 }
 
 .mx_FilePanel .mx_EventTile .mx_MessageTimestamp {
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/NotificationPanel.css b/src/skins/vector/css/matrix-react-sdk/structures/NotificationPanel.css
index 2a42e35f4b..36d62a8177 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/NotificationPanel.css
+++ b/src/skins/vector/css/matrix-react-sdk/structures/NotificationPanel.css
@@ -44,6 +44,7 @@ limitations under the License.
 .mx_NotificationPanel .mx_EventTile_roomName {
     font-weight: bold;
     font-size: 14px;
+    word-wrap: break-word;
 }
 
 .mx_NotificationPanel .mx_EventTile_roomName a {
@@ -62,6 +63,7 @@ limitations under the License.
     font-size: 12px;
     display: inline;
     padding-left: 0px;
+    word-wrap: break-word;
 }
 
 .mx_NotificationPanel .mx_EventTile_senderDetails {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css
index 432bdc2851..ae503511b3 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css
@@ -36,21 +36,13 @@ limitations under the License.
 
 .mx_EventTile.mx_EventTile_info .mx_EventTile_avatar {
     top: 8px;
-    left: 44px;
+    left: 65px;
 }
 
 .mx_EventTile_continuation {
     padding-top: 0px ! important;
 }
 
-.mx_EventTile_verified {
-    background-color: #eaf5f0;
-}
-
-.mx_EventTile_unverified {
-    background-color: #ffa0a0;
-}
-
 .mx_EventTile .mx_SenderProfile {
     color: #454545;
     opacity: 0.5;
@@ -87,6 +79,10 @@ limitations under the License.
     line-height: 22px;
 }
 
+.mx_EventTile_info .mx_EventTile_line {
+    padding-left: 83px;
+}
+
 /* HACK to override line-height which is already marked important elsewhere */
 .mx_EventTile_bigEmoji.mx_EventTile_bigEmoji {
     font-size: 48px ! important;
@@ -122,6 +118,10 @@ limitations under the License.
     color: #fff;
 }
 
+.mx_EventTile_encrypting {
+    color: #abddbc ! important;
+}
+
 .mx_EventTile_sending {
     color: #ddd;
 }
@@ -227,6 +227,43 @@ limitations under the License.
     overflow-y: hidden;
 }
 
+/* End to end encryption stuff */
+
+.mx_EventTile_e2eIcon {
+    display: block;
+    position: absolute;
+    top: 9px;
+    left: 46px;
+    z-index: 2;
+}
+
+.mx_EventTile:hover.mx_EventTile_verified .mx_EventTile_line,
+.mx_EventTile:hover.mx_EventTile_unverified .mx_EventTile_line {
+    padding-left: 60px;
+}
+
+.mx_EventTile:hover.mx_EventTile_verified .mx_EventTile_line {
+    border-left: #76cfa5 5px solid;
+}
+.mx_EventTile:hover.mx_EventTile_unverified .mx_EventTile_line {
+    border-left: #e8bf37 5px solid;
+}
+
+.mx_EventTile:hover.mx_EventTile_verified .mx_MessageTimestamp,
+.mx_EventTile:hover.mx_EventTile_unverified .mx_MessageTimestamp {
+    left: 3px;
+}
+
+.mx_EventTile_verified .mx_EventTile_e2eIcon {
+    display: none;
+}
+
+.mx_EventTile:hover.mx_EventTile_verified .mx_EventTile_e2eIcon,
+.mx_EventTile:hover.mx_EventTile_unverified .mx_EventTile_e2eIcon {
+    display: block;
+    left: 41px;
+}
+
 /* Various markdown overrides */
 
 .mx_EventTile_content .markdown-body {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/LinkPreviewWidget.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/LinkPreviewWidget.css
index ed470c0039..2e2d9f8046 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/LinkPreviewWidget.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/LinkPreviewWidget.css
@@ -50,7 +50,7 @@ limitations under the License.
 .mx_LinkPreviewWidget_description {
     margin-top: 8px;
     white-space: normal;
-    word-break: break-word;
+    word-wrap: break-word;
 }
 
 .mx_LinkPreviewWidget_cancel {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/MessageComposer.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/MessageComposer.css
index 45bc39cf3b..6c7ac4dcb4 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/MessageComposer.css
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/MessageComposer.css
@@ -46,6 +46,11 @@ limitations under the License.
     width: 100%;
 }
 
+.mx_MessageComposer_e2eIcon {
+    position: absolute;
+    left: 46px;
+}
+
 .mx_MessageComposer_noperm_error {
     width: 100%;
     height: 60px;
diff --git a/src/skins/vector/img/e2e-blocked.svg b/src/skins/vector/img/e2e-blocked.svg
new file mode 100644
index 0000000000..0ab2c6efbe
--- /dev/null
+++ b/src/skins/vector/img/e2e-blocked.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/src/skins/vector/img/e2e-unencrypted.svg b/src/skins/vector/img/e2e-unencrypted.svg
new file mode 100644
index 0000000000..1467223638
--- /dev/null
+++ b/src/skins/vector/img/e2e-unencrypted.svg
@@ -0,0 +1,23 @@
+
+
\ No newline at end of file
diff --git a/src/skins/vector/img/e2e-verified.svg b/src/skins/vector/img/e2e-verified.svg
new file mode 100644
index 0000000000..b65f50b2b6
--- /dev/null
+++ b/src/skins/vector/img/e2e-verified.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/src/skins/vector/img/e2e-warning.svg b/src/skins/vector/img/e2e-warning.svg
new file mode 100644
index 0000000000..8a55f199ba
--- /dev/null
+++ b/src/skins/vector/img/e2e-warning.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file