diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js
index eed8ea2602ab0b3231fa1a573353609b01cd7032..7ad3a7644c9bf3a3c12c62c64292c1eb8ff1ea97 100644
--- a/app/javascript/mastodon/features/status/index.js
+++ b/app/javascript/mastodon/features/status/index.js
@@ -78,6 +78,7 @@ export default class Status extends ImmutablePureComponent {
 
   componentWillReceiveProps (nextProps) {
     if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
+      this._scrolledIntoView = false;
       this.props.dispatch(fetchStatus(nextProps.params.statusId));
     }
   }
@@ -240,11 +241,17 @@ export default class Status extends ImmutablePureComponent {
   }
 
   componentDidUpdate () {
+    if (this._scrolledIntoView) {
+      return;
+    }
+
     const { status, ancestorsIds } = this.props;
 
     if (status && ancestorsIds && ancestorsIds.size > 0) {
-      const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size];
-      element.scrollIntoView();
+      const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size - 1];
+
+      element.scrollIntoView(true);
+      this._scrolledIntoView = true;
     }
   }