diff --git a/gertty/db.py b/gertty/db.py
index 17b58cf..1a5b131 100644
--- a/gertty/db.py
+++ b/gertty/db.py
@@ -24,7 +24,7 @@ import six
 import sqlalchemy
 from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Boolean, DateTime, Text, UniqueConstraint
 from sqlalchemy.schema import ForeignKey
-from sqlalchemy.orm import mapper, sessionmaker, relationship, scoped_session
+from sqlalchemy.orm import mapper, sessionmaker, relationship, scoped_session, joinedload
 from sqlalchemy.orm.session import Session
 from sqlalchemy.sql import exists
 from sqlalchemy.sql.expression import and_
@@ -815,9 +815,12 @@ class DatabaseSession(object):
         except sqlalchemy.orm.exc.NoResultFound:
             return self.createSyncQuery(name)
 
-    def getChange(self, key):
+    def getChange(self, key, lazy=True):
+        query = self.session().query(Change).filter_by(key=key)
+        if not lazy:
+            query = query.options(joinedload(Change.revisions).joinedload(Revision.files).joinedload(File.comments))
         try:
-            return self.session().query(Change).filter_by(key=key).one()
+            return query.one()
         except sqlalchemy.orm.exc.NoResultFound:
             return None
 
diff --git a/gertty/view/change.py b/gertty/view/change.py
index 5953faa..7dd41bd 100644
--- a/gertty/view/change.py
+++ b/gertty/view/change.py
@@ -618,7 +618,7 @@ class ChangeView(urwid.WidgetWrap):
 
     def refresh(self):
         with self.app.db.getSession() as session:
-            change = session.getChange(self.change_key)
+            change = session.getChange(self.change_key, lazy=False)
             # When we first open the change, update its last_seen
             # time.
             if not self.marked_seen: