diff --git a/src/skins/vector/views/molecules/EventAsTextTile.js b/src/skins/vector/views/molecules/EventAsTextTile.js
index 445303e4a1..fe79dd3aae 100644
--- a/src/skins/vector/views/molecules/EventAsTextTile.js
+++ b/src/skins/vector/views/molecules/EventAsTextTile.js
@@ -19,22 +19,22 @@ limitations under the License.
 var React = require('react');
 
 var EventAsTextTileController = require('matrix-react-sdk/lib/controllers/molecules/EventAsTextTile')
-var sdk = require('matrix-react-sdk')
 var TextForEvent = require('matrix-react-sdk/lib/TextForEvent');
 
 module.exports = React.createClass({
     displayName: 'EventAsTextTile',
     mixins: [EventAsTextTileController],
 
-    render: function() {
-        var MessageTimestamp = sdk.getComponent('atoms.MessageTimestamp');
-        var MemberAvatar = sdk.getComponent('atoms.MemberAvatar');
+    statics: {
+        needsSenderProfile: function() {
+            return false;
+        }
+    },
 
+    render: function() {
         var text = TextForEvent.textForEvent(this.props.mxEvent);
         if (text == null || text.length == 0) return null;
 
-        var timestamp = this.props.last ? <MessageTimestamp ts={this.props.mxEvent.getTs()} /> : null;
-        var avatar = this.props.mxEvent.sender ? <MemberAvatar member={this.props.mxEvent.sender} /> : null;
         return (
             <div className="mx_EventAsTextTile">
                 {TextForEvent.textForEvent(this.props.mxEvent)}
diff --git a/src/skins/vector/views/molecules/EventTile.js b/src/skins/vector/views/molecules/EventTile.js
index a086ad00e5..e80aa98a62 100644
--- a/src/skins/vector/views/molecules/EventTile.js
+++ b/src/skins/vector/views/molecules/EventTile.js
@@ -114,7 +114,9 @@ module.exports = React.createClass({
                     </div>
                 );
             }
-            sender = <SenderProfile mxEvent={this.props.mxEvent} aux={aux} />;
+            if (EventTileType.needsSenderProfile()) {
+                sender = <SenderProfile mxEvent={this.props.mxEvent} aux={aux} />;
+            }
         }
         return (
             <div className={classes}>
diff --git a/src/skins/vector/views/molecules/MessageTile.js b/src/skins/vector/views/molecules/MessageTile.js
index 5e83505029..44f5b63564 100644
--- a/src/skins/vector/views/molecules/MessageTile.js
+++ b/src/skins/vector/views/molecules/MessageTile.js
@@ -28,6 +28,12 @@ module.exports = React.createClass({
     displayName: 'MessageTile',
     mixins: [MessageTileController],
 
+    statics: {
+        needsSenderProfile: function() {
+            return true;
+        }
+    },
+
     render: function() {
         var UnknownMessageTile = sdk.getComponent('molecules.UnknownMessageTile');
 
diff --git a/webpack.config.js b/webpack.config.js
index 7868699dab..929e57d71b 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -20,7 +20,8 @@ module.exports = {
             // removed which gives a tree with matrix-react-sdk and vector
             // trees smashed together, but this fixes everything being under
             // various levels of '.' and '..'
-            return info.resourcePath.replace(/^[\/\.]*/, '');
+            // Also, sometimes the resource path is absolute.
+            return path.relative(process.cwd(), info.resourcePath).replace(/^[\/\.]*/, '');
         }
     },
     resolve: {