diff --git a/src/components/structures/CreateRoom.js b/src/components/structures/CreateRoom.js
index e7585e3640..ce4c0916d4 100644
--- a/src/components/structures/CreateRoom.js
+++ b/src/components/structures/CreateRoom.js
@@ -31,6 +31,7 @@ module.exports = React.createClass({
 
     propTypes: {
         onRoomCreated: React.PropTypes.func,
+        collapsedRhs: React.PropTypes.bool,
     },
 
     phases: {
@@ -245,7 +246,7 @@ module.exports = React.createClass({
 
             return (
             <div className="mx_CreateRoom">
-                <SimpleRoomHeader title="CreateRoom" />
+                <SimpleRoomHeader title="CreateRoom" collapsedRhs={ this.props.collapsedRhs }/>
                 <div className="mx_CreateRoom_body">
                     <input type="text" ref="room_name" value={this.state.room_name} onChange={this.onNameChange} placeholder="Name"/> <br />
                     <textarea className="mx_CreateRoom_description" ref="topic" value={this.state.topic} onChange={this.onTopicChange} placeholder="Topic"/> <br />
diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index e1eda409d5..39e1d9b54c 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -1008,43 +1008,49 @@ module.exports = React.createClass({
 
             switch (this.state.page_type) {
                 case this.PageTypes.RoomView:
-                    page_element = (
-                        <RoomView
-                            ref="roomView"
-                            roomAddress={this.state.currentRoomAlias || this.state.currentRoomId}
-                            autoJoin={this.state.autoJoin}
-                            onRoomIdResolved={this.onRoomIdResolved}
-                            eventId={this.state.initialEventId}
-                            thirdPartyInvite={this.state.thirdPartyInvite}
-                            oobData={this.state.roomOobData}
-                            highlightedEventId={this.state.highlightedEventId}
-                            eventPixelOffset={this.state.initialEventPixelOffset}
-                            key={this.state.currentRoomAlias || this.state.currentRoomId}
-                            opacity={this.state.middleOpacity}
-                            ConferenceHandler={this.props.ConferenceHandler} />
-                    );
-                    right_panel = <RightPanel roomId={this.state.currentRoomId} collapsed={this.state.collapse_rhs} opacity={this.state.sideOpacity} />
+                    page_element = <RoomView
+                        ref="roomView"
+                        roomAddress={this.state.currentRoomAlias || this.state.currentRoomId}
+                        autoJoin={this.state.autoJoin}
+                        onRoomIdResolved={this.onRoomIdResolved}
+                        eventId={this.state.initialEventId}
+                        thirdPartyInvite={this.state.thirdPartyInvite}
+                        oobData={this.state.roomOobData}
+                        highlightedEventId={this.state.highlightedEventId}
+                        eventPixelOffset={this.state.initialEventPixelOffset}
+                        key={this.state.currentRoomAlias || this.state.currentRoomId}
+                        opacity={this.state.middleOpacity}
+                        collapsedRhs={ this.state.collapse_rhs }
+                        ConferenceHandler={this.props.ConferenceHandler}
+                    />
+                    if (!this.state.collapse_rhs) right_panel = <RightPanel roomId={this.state.currentRoomId} opacity={this.state.sideOpacity} />
                     break;
                 case this.PageTypes.UserSettings:
                     page_element = <UserSettings
                         onClose={this.onUserSettingsClose}
                         version={this.state.version}
                         brand={this.props.config.brand}
+                        collapsedRhs={ this.state.collapse_rhs }
                         enableLabs={this.props.config.enableLabs}
                     />
-                    right_panel = <RightPanel collapsed={this.state.collapse_rhs} opacity={this.state.sideOpacity}/>
+                    if (!this.state.collapse_rhs) right_panel = <RightPanel opacity={this.state.sideOpacity}/>
                     break;
                 case this.PageTypes.CreateRoom:
-                    page_element = <CreateRoom onRoomCreated={this.onRoomCreated}/>
-                    right_panel = <RightPanel collapsed={this.state.collapse_rhs} opacity={this.state.sideOpacity}/>
+                    page_element = <CreateRoom
+                        onRoomCreated={this.onRoomCreated}
+                        collapsedRhs={ this.state.collapse_rhs }
+                    />
+                    if (!this.state.collapse_rhs) right_panel = <RightPanel opacity={this.state.sideOpacity}/>
                     break;
                 case this.PageTypes.RoomDirectory:
-                    page_element = <RoomDirectory />
-                    right_panel = <RightPanel collapsed={this.state.collapse_rhs} opacity={this.state.sideOpacity}/>
+                    page_element = <RoomDirectory
+                        collapsedRhs={ this.state.collapse_rhs }
+                    />
+                    if (!this.state.collapse_rhs) right_panel = <RightPanel opacity={this.state.sideOpacity}/>
                     break;
                 case this.PageTypes.UserView:
                     page_element = null; // deliberately null for now
-                    right_panel = <RightPanel userId={this.state.viewUserId} collapsed={false} opacity={this.state.sideOpacity} />
+                    right_panel = <RightPanel userId={this.state.viewUserId} opacity={this.state.sideOpacity} />
                     break;
             }
 
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index f39a3c6627..947ff7cb4e 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -97,7 +97,7 @@ module.exports = React.createClass({
         highlightedEventId: React.PropTypes.string,
 
         // is the RightPanel collapsed?
-        rightPanelCollapsed: React.PropTypes.bool,
+        collapsedRhs: React.PropTypes.bool,
     },
 
     getInitialState: function() {
@@ -1374,7 +1374,7 @@ module.exports = React.createClass({
                             <RoomHeader ref="header"
                                 room={this.state.room}
                                 oobData={this.props.oobData}
-                                rightPanelCollapsed={ this.props.rightPanelCollapsed }
+                                collapsedRhs={ this.props.collapsedRhs }
                             />
                             <div className="mx_RoomView_auxPanel">
                                 <RoomPreviewBar onJoinClick={ this.onJoinButtonClicked }
@@ -1413,7 +1413,11 @@ module.exports = React.createClass({
                 // We have a regular invite for this room.
                 return (
                     <div className="mx_RoomView">
-                        <RoomHeader ref="header" room={this.state.room}/>
+                        <RoomHeader
+                            ref="header"
+                            room={this.state.room}
+                            collapsedRhs={ this.props.collapsedRhs }
+                        />
                         <div className="mx_RoomView_auxPanel">
                             <RoomPreviewBar onJoinClick={ this.onJoinButtonClicked }
                                             onRejectClick={ this.onRejectButtonClicked }
@@ -1622,6 +1626,7 @@ module.exports = React.createClass({
                     oobData={this.props.oobData}
                     editing={this.state.editingRoomSettings}
                     saving={this.state.uploadingRoomSettings}
+                    collapsedRhs={ this.props.collapsedRhs }
                     onSearchClick={this.onSearchClick}
                     onSettingsClick={this.onSettingsClick}
                     onSaveClick={this.onSettingsSaveClick}
diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js
index 89972aebb8..fadb97705b 100644
--- a/src/components/structures/UserSettings.js
+++ b/src/components/structures/UserSettings.js
@@ -57,6 +57,9 @@ module.exports = React.createClass({
 
         // True to show the 'labs' section of experimental features
         enableLabs: React.PropTypes.bool,
+
+        // true if RightPanel is collapsed
+        collapsedRhs: React.PropTypes.bool,
     },
 
     getDefaultProps: function() {
@@ -506,7 +509,11 @@ module.exports = React.createClass({
 
         return (
             <div className="mx_UserSettings">
-                <SimpleRoomHeader title="Settings" onCancelClick={ this.props.onClose }/>
+                <SimpleRoomHeader
+                    title="Settings"
+                    collapsedRhs={ this.props.collapsedRhs }
+                    onCancelClick={ this.props.onClose }
+                />
 
                 <GeminiScrollbar className="mx_UserSettings_body"
                                  autoshow={true}>
diff --git a/src/components/views/rooms/RoomHeader.js b/src/components/views/rooms/RoomHeader.js
index f7f4f50a84..6abcb549d8 100644
--- a/src/components/views/rooms/RoomHeader.js
+++ b/src/components/views/rooms/RoomHeader.js
@@ -20,6 +20,7 @@ var React = require('react');
 var sdk = require('../../../index');
 var MatrixClientPeg = require('../../../MatrixClientPeg');
 var Modal = require("../../../Modal");
+var dis = require("../../../dispatcher");
 
 var linkify = require('linkifyjs');
 var linkifyElement = require('linkifyjs/element');
@@ -35,7 +36,7 @@ module.exports = React.createClass({
         oobData: React.PropTypes.object,
         editing: React.PropTypes.bool,
         saving: React.PropTypes.bool,
-        rightPanelCollapsed: React.PropTypes.bool,
+        collapsedRhs: React.PropTypes.bool,
         onSettingsClick: React.PropTypes.func,
         onSaveClick: React.PropTypes.func,
         onSearchClick: React.PropTypes.func,
@@ -114,6 +115,10 @@ module.exports = React.createClass({
         }).done();
     },
 
+    onShowRhsClick: function(ev) {
+        dis.dispatch({ action: 'show_right_panel' });
+    },
+
     /**
      * After editing the settings, get the new name for the room
      *
@@ -287,8 +292,11 @@ module.exports = React.createClass({
         }
 
         var rightPanel_buttons;
-        if (this.props.rightPanelCollapsed) {
-            // TODO: embed the RightPanel header in here if it's collapsed.
+        if (this.props.collapsedRhs) {
+            rightPanel_buttons =
+                <div className="mx_RoomHeader_button" onClick={this.onShowRhsClick} title=">">
+                    <TintableSvg src="img/minimise.svg" width="10" height="16"/>
+                </div>
         }
 
         var right_row;
diff --git a/src/components/views/rooms/SimpleRoomHeader.js b/src/components/views/rooms/SimpleRoomHeader.js
index 2f8c5eaf11..7f2bb0048a 100644
--- a/src/components/views/rooms/SimpleRoomHeader.js
+++ b/src/components/views/rooms/SimpleRoomHeader.js
@@ -17,6 +17,8 @@ limitations under the License.
 'use strict';
 
 var React = require('react');
+var sdk = require('../../../index');
+var dis = require("../../../dispatcher");
 
 /*
  * A stripped-down room header used for things like the user settings
@@ -28,19 +30,39 @@ module.exports = React.createClass({
     propTypes: {
         title: React.PropTypes.string,
         onCancelClick: React.PropTypes.func,
+
+        // is the RightPanel collapsed?
+        collapsedRhs: React.PropTypes.bool,
+    },
+
+    onShowRhsClick: function(ev) {
+        dis.dispatch({ action: 'show_right_panel' });
     },
 
     render: function() {
+        var TintableSvg = sdk.getComponent("elements.TintableSvg");
+
         var cancelButton;
         if (this.props.onCancelClick) {
             cancelButton = <div className="mx_RoomHeader_cancelButton" onClick={this.props.onCancelClick}><img src="img/cancel.svg" width="18" height="18" alt="Cancel"/> </div>
         }
 
+        var showRhsButton;
+        /* // don't bother cluttering things up with this for now.
+        if (this.props.collapsedRhs) {
+            showRhsButton =
+                <div className="mx_RoomHeader_button" style={{ float: 'right' }} onClick={this.onShowRhsClick} title=">">
+                    <TintableSvg src="img/minimise.svg" width="10" height="16"/>
+                </div>
+        }
+        */
+
         return (
             <div className="mx_RoomHeader" >
                 <div className="mx_RoomHeader_wrapper">
                     <div className="mx_RoomHeader_simpleHeader">
                         { this.props.title }
+                        { showRhsButton }
                         { cancelButton }
                     </div>
                 </div>