diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html
index 8c22e7c..5513f2e 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html
@@ -297,6 +297,7 @@
       <gr-messages-list id="messageList"
           change-num="[[_changeNum]]"
           messages="[[_change.messages]]"
+          reviewer-updates="[[_change.reviewer_updates]]"
           comments="[[_comments]]"
           project-config="[[_projectConfig]]"
           show-reply-buttons="[[_loggedIn]]"
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
index 700f162..76874c0 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
@@ -552,6 +552,9 @@
               function(change) {
                 // Issue 4190: Coalesce missing topics to null.
                 if (!change.topic) { change.topic = null; }
+                if (!change.reviewer_updates) {
+                  change.reviewer_updates = null;
+                }
                 this._change = change;
               }.bind(this));
     },
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message.html b/polygerrit-ui/app/elements/change/gr-message/gr-message.html
index 7c287db..66254d0 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message.html
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message.html
@@ -50,15 +50,15 @@
       }
       .showAvatar.collapsed .contentContainer {
         margin-left: calc(var(--default-horizontal-margin) + 1.75em);
-        padding: 10px 75px 10px 0;
+        padding: .75em 2em .75em 0;
       }
       .hideAvatar.collapsed .contentContainer,
       .hideAvatar.expanded .contentContainer {
         margin-left: 0;
-        padding: 10px 75px 10px 0;
+        padding: .75em 2em .75em 0;
       }
       .collapsed gr-avatar {
-        top: 8px;
+        top: .5em;
         height: 1.75em;
         width: 1.75em;
       }
@@ -75,7 +75,8 @@
       }
       .collapsed .name,
       .collapsed .content,
-      .collapsed .message {
+      .collapsed .message,
+      gr-account-chip {
         display: inline;
       }
       .collapsed gr-comment-list,
@@ -99,23 +100,34 @@
       }
     </style>
     <div class$="[[_computeClass(expanded, showAvatar)]]">
-      <gr-avatar account="[[message.author]]" image-size="100"></gr-avatar>
+      <gr-avatar account="[[author]]" image-size="100"></gr-avatar>
       <div class="contentContainer">
-        <div class="name" on-tap="_handleNameTap">[[message.author.name]]</div>
-        <div class="content">
-          <gr-linked-text class="message"
-              pre="[[expanded]]"
-              content="[[message.message]]"
-              disabled="[[!expanded]]"
-              config="[[projectConfig.commentlinks]]"></gr-linked-text>
-          <gr-comment-list
-              comments="[[comments]]"
-              change-num="[[changeNum]]"
-              patch-num="[[message._revision_number]]"></gr-comment-list>
-        </div>
-        <a class="date" href$="[[_computeMessageHash(message)]]" on-tap="_handleLinkTap">
-          <gr-date-formatter date-str="[[message.date]]"></gr-date-formatter>
-        </a>
+        <div class="name" on-tap="_handleNameTap">[[author.name]]</div>
+        <template is="dom-if" if="[[message.message]]">
+          <div class="content">
+            <gr-linked-text
+                class="message"
+                pre="[[expanded]]"
+                content="[[message.message]]"
+                disabled="[[!expanded]]"
+                config="[[projectConfig.commentlinks]]"></gr-linked-text>
+            <gr-comment-list
+                comments="[[comments]]"
+                change-num="[[changeNum]]"
+                patch-num="[[message._revision_number]]"></gr-comment-list>
+          </div>
+          <a class="date" href$="[[_computeMessageHash(message)]]" on-tap="_handleLinkTap">
+            <gr-date-formatter date-str="[[message.date]]"></gr-date-formatter>
+          </a>
+        </template>
+        <template is="dom-if" if="[[message.reviewer]]">
+          set reviewer status for
+          <gr-account-chip account="[[message.reviewer]]">
+          </gr-account-chip>
+          to [[message.state]].
+          <gr-date-formatter class="date" date-str="[[message.updated]]">
+          </gr-date-formatter>
+        </template>
       </div>
       <div class="replyContainer" hidden$="[[!showReplyButton]]" hidden>
         <gr-button small on-tap="_handleReplyTap">Reply</gr-button>
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message.js b/polygerrit-ui/app/elements/change/gr-message/gr-message.js
index 26b9fb9..c92ad07 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message.js
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message.js
@@ -36,10 +36,15 @@
     properties: {
       changeNum: Number,
       message: Object,
+      author: {
+        type: Object,
+        computed: '_computeAuthor(message)',
+      },
       comments: {
         type: Object,
         observer: '_commentsChanged',
       },
+      config: Object,
       expanded: {
         type: Boolean,
         value: true,
@@ -47,22 +52,33 @@
       },
       showAvatar: {
         type: Boolean,
-        value: false,
+        computed: '_computeShowAvatar(author, config)',
       },
       showReplyButton: {
         type: Boolean,
-        value: false,
+        computed: '_computeShowReplyButton(message)',
       },
       projectConfig: Object,
     },
 
     ready: function() {
-      this.$.restAPI.getConfig().then(function(cfg) {
-        this.showAvatar = !!(cfg && cfg.plugin && cfg.plugin.has_avatars) &&
-            this.message && this.message.author;
+      this.$.restAPI.getConfig().then(function(config) {
+        this.config = config;
       }.bind(this));
     },
 
+    _computeAuthor: function(message) {
+      return message.author || message.updated_by;
+    },
+
+    _computeShowAvatar: function(author, config) {
+      return !!(author && config && config.plugin && config.plugin.has_avatars);
+    },
+
+    _computeShowReplyButton: function(message) {
+      return !!message.message;
+    },
+
     _commentsChanged: function(value) {
       this.expanded = Object.keys(value || {}).length > 0;
     },
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html
index 7302cf2..c90f58a 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html
@@ -56,8 +56,34 @@
         assert.deepEqual(e.detail.message, element.message);
         done();
       });
+      flushAsynchronousOperations();
       MockInteractions.tap(element.$$('.replyContainer gr-button'));
     });
 
+    test('reviewer update', function() {
+      var updatedBy = {
+        _account_id: 1115495,
+        name: 'Andrew Bonventre',
+        email: 'andybons@chromium.org',
+      };
+      var reviewer = {
+        _account_id: 123456,
+        name: 'Foo Bar',
+        email: 'barbar@chromium.org',
+      };
+      element.message = {
+        updated_by: updatedBy,
+        reviewer: reviewer,
+        state: 'CC',
+        updated: '2016-01-12 20:24:49.448000000',
+      };
+      flushAsynchronousOperations();
+      var content = element.$$('.contentContainer');
+      assert.isOk(content);
+      assert.strictEqual(
+          content.querySelector('gr-account-chip').account, reviewer);
+      assert.equal(0, content.textContent.trim().indexOf(updatedBy.name));
+    });
+
   });
 </script>
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.html b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.html
index 8a66d03..b6b6d6d 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.html
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.html
@@ -47,7 +47,10 @@
         [[_computeExpandCollapseMessage(_expanded)]]
       </gr-button>
     </div>
-    <template is="dom-repeat" items="[[messages]]" as="message">
+    <template
+        is="dom-repeat"
+        items="[[_computeItems(messages, reviewerUpdates)]]"
+        as="message">
       <gr-message
           change-num="[[changeNum]]"
           message="[[message]]"
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.js b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.js
index 1b9ce14..4462fdf 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.js
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.js
@@ -23,6 +23,10 @@
         type: Array,
         value: function() { return []; },
       },
+      reviewerUpdates: {
+        type: Array,
+        value: function() { return []; },
+      },
       comments: Object,
       projectConfig: Object,
       topMargin: Number,
@@ -52,6 +56,34 @@
       this._highlightEl(el);
     },
 
+    _computeItems: function(messages, reviewerUpdates) {
+      messages = messages || [];
+      reviewerUpdates = reviewerUpdates || [];
+      var result = [];
+      var mDate;
+      var rDate;
+      while (reviewerUpdates.length || messages.length) {
+        if (!reviewerUpdates.length) {
+          result = result.concat(messages);
+          break;
+        } else if (!messages.length) {
+          result = result.concat(reviewerUpdates);
+          break;
+        } else {
+          mDate = mDate || util.parseDate(messages[0].date);
+          rDate = rDate || util.parseDate(reviewerUpdates[0].updated);
+          if (rDate < mDate) {
+            result.push(reviewerUpdates.shift());
+            rDate = null;
+          } else {
+            result.push(messages.shift());
+            mDate = null;
+          }
+        }
+      }
+      return result;
+    },
+
     _highlightEl: function(el) {
       var highlightedEls =
           Polymer.dom(this.root).querySelectorAll('.highlighted');
@@ -84,6 +116,9 @@
     },
 
     _computeCommentsForMessage: function(comments, message, index) {
+      if (!message.message) {
+        return [];
+      }
       comments = comments || {};
       var messages = this.messages || [];
       var msgComments = {};
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html
index 9ef9d02..3cda480 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html
@@ -39,37 +39,37 @@
       element = fixture('basic');
       element.messages = [
         {
-          'id': '47c43261_55aa2c41',
-          'author': {
-            '_account_id': 1115495,
-            'name': 'Andrew Bonventre',
-            'email': 'andybons@chromium.org',
+          id: '47c43261_55aa2c41',
+          author: {
+            _account_id: 1115495,
+            name: 'Andrew Bonventre',
+            email: 'andybons@chromium.org',
           },
-          'date': '2016-01-12 20:24:49.448000000',
-          'message': 'Uploaded patch set 1.',
-          '_revision_number': 1
+          date: '2016-01-12 20:24:49.448000000',
+          message: 'Uploaded patch set 1.',
+          _revision_number: 1
         },
         {
-          'id': '47c43261_9593e420',
-          'author': {
-            '_account_id': 1115495,
-            'name': 'Andrew Bonventre',
-            'email': 'andybons@chromium.org',
+          id: '47c43261_9593e420',
+          author: {
+            _account_id: 1115495,
+            name: 'Andrew Bonventre',
+            email: 'andybons@chromium.org',
           },
-          'date': '2016-01-12 20:28:33.038000000',
-          'message': 'Patch Set 1:\n\n(1 comment)',
-          '_revision_number': 1
+          date: '2016-01-12 20:28:33.038000000',
+          message: 'Patch Set 1:\n\n(1 comment)',
+          _revision_number: 1
         },
         {
-          'id': '87b2aaf4_f73260c5',
-          'author': {
-            '_account_id': 1143760,
-            'name': 'Mark Mentovai',
-            'email': 'mark@chromium.org',
+          id: '87b2aaf4_f73260c5',
+          author: {
+            _account_id: 1143760,
+            name: 'Mark Mentovai',
+            email: 'mark@chromium.org',
           },
-          'date': '2016-01-12 21:17:07.554000000',
-          'message': 'Patch Set 1:\n\n(3 comments)',
-          '_revision_number': 1
+          date: '2016-01-12 21:17:07.554000000',
+          message: 'Patch Set 1:\n\n(3 comments)',
+          _revision_number: 1
         }
       ];
       flushAsynchronousOperations();
@@ -127,6 +127,5 @@
       scrollToStub.restore();
       highlightStub.restore();
     });
-
   });
 </script>
